推荐学习书目
› 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
vincekang
V2EX  ›  Python

请教大佬,怎么把 Python 项目打包成 exe 程序

  •  
  •   vincekang · Sep 12, 2020 · 6814 views
    This topic created in 2246 days ago, the information mentioned may be changed or developed.

    logo_tr.png

    请大佬指点,这是我用 Python 开发的爬虫项目InfoSpider,issues 中提到最多的就是安装环境出现问题,如何把这个项目打包成.exe 程序,让用户直接双击打开即可使用,从而免去安装 python 环境和各种库的麻烦,有哪些比较成熟的方案或者哪些工具能实现这个需求? 在此先感谢大佬不吝指点!项目地址

    40 replies  •  2020-10-20 19:16:14 +08:00
    skylee03
    skylee03
    Sep 12, 2020
    1
    pyinstaller
    dlsflh
    dlsflh
    Sep 12, 2020 via Android❤️1
    2
    我觉得打包后你就该愁如何减小体积了,是个大坑…
    waytoshine
    waytoshine
    Sep 12, 2020 via Android
    3
    用 python 搞 exe,是个大坑,恭喜你踏上了一条没有尽头的路
    tetora
    tetora
    Sep 12, 2020 via Android
    4
    把环境搭建写成脚本
    benjix
    benjix
    Sep 12, 2020 via Android
    5
    pyinstaller,nuitka
    love
    love
    Sep 12, 2020
    6
    其实最简单的方法是下个绿色 python,写个启动脚本就行,我以前就是这么干的
    676529483
    676529483
    Sep 12, 2020
    7
    pyinstaller + 1,其他的基本都是特定平台的
    renmu123
    renmu123
    Sep 12, 2020 via Android
    8
    Python 下打包基本只有 pyinstaller 可用,但是坑点非常多,用起来体验是比较难受的
    ila
    ila
    Sep 12, 2020 via Android
    9
    欢迎来到 golang,一键编译,一个 exe
    Enying
    Enying
    Sep 12, 2020 via Android
    10
    这个也是我最近想玩的
    z0wjqnxi
    z0wjqnxi
    Sep 12, 2020 via iPhone
    11
    exe 打出来可能比 docker 镜像都大…
    darer
    darer
    Sep 12, 2020❤️3
    12
    开源项目做那么多保姆行为干啥…
    他们不会用就让他们去提升自己
    limuyan44
    limuyan44
    Sep 12, 2020
    13
    以前我学的时候也很疑惑,后来我打开搜索引擎,看了几个文章 5 分钟后我已经跑出第一个包了。
    jin7
    jin7
    Sep 12, 2020
    14
    弄 docker 镜像也不错. 不用适配各种系统了...
    弄成 exe 貌似 pyinstaller 比较简单
    Oceanhime
    Oceanhime
    Sep 12, 2020
    15
    我觉得, 你 "提供数据分析功能\基于用户数据生成图表文件" 都能写了, 不至于连打包成 exe 都不会吧 XD
    cherbim
    cherbim
    Sep 12, 2020 via iPhone
    16
    盲猜下一个问题,py 打包成 exe 体积怎么那么大
    fansangg
    fansangg
    Sep 12, 2020
    17
    你带 gui 的还是算了吧,很坑的。
    xJogger
    xJogger
    Sep 12, 2020❤️6
    18
    1. 下载 embed 版 Python 并解压: https://www.python.org/downloads/windows/
    2. 下载 get-pip 并放入 embed 版 Python 文件夹中: https://pip.pypa.io/en/latest/installing/
    3. 打开 embed 版 Python 中的 python**._pth,其中**是版本号,掉 import site 前的注释。
    3. 命令行运行 .\python.exe .\get-pip.py
    4. 安装需要的 python 模块 .\python.exe -m pip install 模块名 -i https://pypi.doubanio.com/simple --no-warn-script-location
    5. 建立一个 bat 的启动脚本,内容:
    @.\python.exe .\程序的入口文件.py
    @pause
    xJogger
    xJogger
    Sep 12, 2020❤️1
    19
    如果没有什么隐性依赖,那就 Pyinstaller 一把梭:
    pyinstaller -F .\程序入口.py -i .\图标文件.ico
    如果单文件太大,可以打包成文件夹:
    pyinstaller .\程序入口.py -i .\图标文件.ico
    lxilu
    lxilu
    Sep 12, 2020 via iPhone
    20
    建议打包后 release 仍留存不打包的,不然对能搞环境的不好
    tomczhen
    tomczhen
    Sep 12, 2020 via Android
    21
    exe 付费提供。

    不愿意付费又不想自己装个运行环境的 Windows 用户就放弃吧。
    vincekang
    vincekang
    OP
    Sep 13, 2020 via iPhone
    23
    @xJogger
    @renmu123
    @benjix
    @skylee03
    @njzjz
    @tomczhen
    谢谢大佬们的指点👋
    vincekang
    vincekang
    OP
    Sep 13, 2020 via iPhone
    24
    @tomczhen 思路可以👍
    vincekang
    vincekang
    OP
    Sep 13, 2020 via iPhone
    25
    @love 绿色 python 是什么?
    301
    301
    Sep 13, 2020 via Android
    26
    @vincekang portable version,免安装版,即#18 提到的 embed 版
    vincekang
    vincekang
    OP
    Sep 13, 2020 via iPhone
    27
    @301 谢谢🙏我研究研究
    calmzhu
    calmzhu
    Sep 13, 2020
    28
    这名字配色咋看着这么眼熟🐶
    jeeyong
    jeeyong
    Sep 13, 2020
    29
    体积大的问题还好吧..
    磁盘也不缺, 网络速度也够快
    johnsona
    johnsona
    Sep 13, 2020
    30
    @xJogger 安装完依赖模块之后,python 和依赖模块整个 copy 到相同平台的系统就可以跑了吗?还是说,依赖包先下载,目标系统再执行一次离线安装?
    xJogger
    xJogger
    Sep 13, 2020 via Android
    31
    @jsisjs20130824 直接把 embed 版 Python 文件夹拷贝走就能用
    lipcao
    lipcao
    Sep 14, 2020
    32
    用 bat 脚本更方便吧,安装 python 环境,配置环境变量,启动 py 文件一气呵成
    lipcao
    lipcao
    Sep 14, 2020
    33
    忽略我的回复
    vincekang
    vincekang
    OP
    Sep 14, 2020 via iPhone
    34
    @lipcao 哈哈😄
    Macv1994
    Macv1994
    Sep 21, 2020
    35
    pyinstaller 最大的坑在于 打包出来的东西十分大 这个大小取决于你 引入了多少第三方库
    sxy960806
    sxy960806
    Sep 29, 2020 via Android
    36
    @xJogger 竟然和我最近写的部署脚本一模一样,握手🤝
    xJogger
    xJogger
    Sep 29, 2020 via Android
    37
    @vincekang 大佬,您的 infoSpider 有没有兴趣增加一下 bangumi.tv 的支持?一个类似于豆瓣的网站,主要用来记录 ACGN 的阅读 /观看历史。
    vincekang
    vincekang
    OP
    Oct 20, 2020
    38
    @xJogger 大佬,非常感谢的方法#18,我今天照着你的方法对我的项目[InfoSpider]( https://infospider.vercel.app/)进行了 Python-embed 版本的制作,非常顺利,整个环境制作下载有 350MB 大小(晚点我会[发布]( https://infospider.vercel.app/)),虽然有点大不利于传播,但是解决用户安装环境出错的一大痛点,非常感谢你!
    vincekang
    vincekang
    OP
    Oct 20, 2020
    39
    @xJogger 你说的 bangumi.tv 这个网站需要 fq 哦,可能用户数据也不多,我在研究研究看能不能加入到 [InfoSpider]( https://infospider.vercel.app)
    vincekang
    vincekang
    OP
    Oct 20, 2020
    40
    @cherbim
    @dlsflh
    你们猜对了,哈哈,打包好之后 350MB
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2178 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    ♥ Do have faith in what you're doing.