V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2021-07-15 19:15:29 +08:00 · 3345 次点击
    这是一个创建于 1220 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个需求的目的是希望将一个项目的主体框架部分(不太需要被改动到)打包成 exe,同时包含各种依赖的库等,但是部分经常需要改动的代码还保留 python 源码的形式,exe 程序可以执行调用到这部分源码内容,这样的话既便于部署,又保持一定灵活性根据根据需求变化修改一些处理逻辑,是否有方法可以实现。
    7 条回复    2021-07-17 16:55:15 +08:00
    bigtan
        1
    bigtan  
       2021-07-15 19:25:13 +08:00
    为什么不是留个配置文件?
    YsHaNg
        2
    YsHaNg  
       2021-07-15 19:32:33 +08:00
    用 setuptool 把库打包好.\setup.py install --user 安装成 exe cd 到其他 py 文件目录运行那个 exe
    easterly
        3
    easterly  
       2021-07-15 19:37:37 +08:00 via iPhone   ❤️ 1
    打包我不清楚,不过可以用 importlib 从指定目录下把 py 文件导入成模块 dict,你再从这里面找要用的扩展方法
    jim9606
        4
    jim9606  
       2021-07-15 22:53:27 +08:00   ❤️ 1
    用官方的 Windows embeddable package 改装。
    将主体框架的包打包为 base.zip ,内容可为 py 或 pyc (参考官方的 python3x.zip 结构,不能包含 dll )放在目录内。
    编辑 python3x._pth,将 base.zip 和可变源码包目录加进去。
    kebamt
        5
    kebamt  
       2021-07-16 02:03:11 +08:00 via iPhone
    用插件 auto-py-to-exe 谷歌能搜着
    Trim21
        6
    Trim21  
       2021-07-16 06:15:02 +08:00 via Android
    好像 pyinstaller 的默认打包模式下,有很多 python 文件就是直接放在 site-packages 里面的

    很久之前用的了,记不太清楚了,仅供参考。
    mutalisk
        7
    mutalisk  
       2021-07-17 16:55:15 +08:00
    回调
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2056 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:23 · PVG 08:23 · LAX 16:23 · JFK 19:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.