通过PyCharm 把Python 程序打包为exe

很多人应该都是使用PyCharm 编写python 程序的吧,虽然都是用 pyinstaller 来打包python 程序为exe。

但是由于PyCharm 用了虚拟环境venv, 所有一些参数是有区别的,网上查询了很久没有查到这方面的信息,下面这些都是我自己探索出来的lin49940。

步骤一,点击进入PyCharm 的输入终端Terminal

步骤二,输入下面的语句, mypython.py 替换为你自己的程序名称

pyinstaller -c -F mypython.py -p E:/dream/venv/Lib/site-packages

这个命令是把程序打包为单独的一个exe文件, 打包成功后的文件在E:\dream\dist 文件夹下,名称为mypython.exe。

当然你也可以打包为多个文件的形式。

-p E:/*******    就是pycharm 当前项目的虚拟环境了, 里面有编写程序使用到的包,这些包可能没有加入到系统的python 环境中,我们必须指定这个路径,依赖的包才能被打包程序加载到。

pyinstaller 命令具体参数, 可以查看官方文档

https://pyinstaller.readthedocs.io/en/stable/usage.html#options

注意, 32位环境打包的exe 可以在32或64位的机器运行, 64位环境打包的exe 只能在64位的机器上运行。


 window 特有的(pyinstaller 3.0 才有)

          --win-private-assemblies

这个参数是指将共享的程序集变为私有程序集,这样的话即使改变环境,编译的程序依然只会执行私有程序集而忽视不同环境下的共享程序集。这个参数尤其适合在一台机器上编译完成后在各种不同环境下执行。

       与之相近的还有一个参数

        --win-no-prefer-redirects

这两个参数是在比较新的pyinstaller版本中才有的选项


对于图形的开发工具, 不要使用 -F 当个文件的方式打包, 这样的话, 你需要去配置环境, 用默认的-D 文件夹的方式打包就行了。

 

Window 运行, 是需要VC++ redist 的支持的,并且版本和(32位或64位)必须对, 不管是python 的wxPython 还是 c#的WPF 也是一样的,使用 C#app 能使用 Chromium 内核的CefSharp 从V65 版本开始就要VC++ Redist2015 才行。

缺少的一些如api-ms-win-crt-runtime-l1-1-0.dll 这些, 其实就是没有指定的 VC++ redist 版本(最低版本,一般有高版本的也行), 绝对不要自己下载或者去其他电脑拿这些dll 文件过来,很可能不兼任导致的莫名其妙的问题(CLR20R3,Error loading Python DLL loadLibrary Pyinstaller FormatMessageW failed 等奇怪的问题),安装对应版本的VC++ Redist 才是根本解决方法。

VC++ redist 绝对绝对绝对要去微软官网下载, 不要到国内一些下载网站下载,他们的东西杂七杂八的,有点小问题就能坑死你。

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

 

  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值