V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lynn0977
V2EX  ›  Python

如何将一个 Python 程序打包成 exe,同时又保留部分 Python 源码便于修改

  •  
  •   lynn0977 · Jul 15, 2021 · 4145 views
    This topic created in 1748 days ago, the information mentioned may be changed or developed.
    这个需求的目的是希望将一个项目的主体框架部分(不太需要被改动到)打包成 exe,同时包含各种依赖的库等,但是部分经常需要改动的代码还保留 python 源码的形式,exe 程序可以执行调用到这部分源码内容,这样的话既便于部署,又保持一定灵活性根据根据需求变化修改一些处理逻辑,是否有方法可以实现。
    7 replies    2021-07-17 16:55:15 +08:00
    bigtan
        1
    bigtan  
       Jul 15, 2021
    为什么不是留个配置文件?
    YsHaNg
        2
    YsHaNg  
       Jul 15, 2021
    用 setuptool 把库打包好.\setup.py install --user 安装成 exe cd 到其他 py 文件目录运行那个 exe
    easterly
        3
    easterly  
       Jul 15, 2021 via iPhone   ❤️ 1
    打包我不清楚,不过可以用 importlib 从指定目录下把 py 文件导入成模块 dict,你再从这里面找要用的扩展方法
    jim9606
        4
    jim9606  
       Jul 15, 2021   ❤️ 1
    用官方的 Windows embeddable package 改装。
    将主体框架的包打包为 base.zip ,内容可为 py 或 pyc (参考官方的 python3x.zip 结构,不能包含 dll )放在目录内。
    编辑 python3x._pth,将 base.zip 和可变源码包目录加进去。
    kebamt
        5
    kebamt  
       Jul 16, 2021 via iPhone
    用插件 auto-py-to-exe 谷歌能搜着
    Trim21
        6
    Trim21  
       Jul 16, 2021 via Android
    好像 pyinstaller 的默认打包模式下,有很多 python 文件就是直接放在 site-packages 里面的

    很久之前用的了,记不太清楚了,仅供参考。
    mutalisk
        7
    mutalisk  
       Jul 17, 2021
    回调
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1189 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 23:12 · PVG 07:12 · LAX 16:12 · JFK 19:12
    ♥ Do have faith in what you're doing.