关于pyinstaller在venv下打包的问题

基本步骤

  • 在Pycharm中新建virtualenv环境,默认名称为venv #创建新的虚拟环境
  • 在Pycharm中打开Terminal #进入命令行
  • cd venv # 进入虚拟环境目录
  • cd Scripts # 进入虚拟环境的Scripts文件夹中
  • activate # 激活虚拟环境
  • pip install pyinstaller # 安装打包工具pyinstaller
  • pip install pypiwin32 # 安装打包工具相关依赖
  • pip install xxx # 安装python程序中需要引入的外部包(根据自己代码需要导入的包安装)
  • 将需要打包的python文件或文件夹复制到Scripts目录中(该步骤一定要执行)
  • pyinstaller -D -w --icon=logo.ico  xxx.py   打包
  • 在当前目录下(scripts目录),生成了build和dist文件夹,打包的结果在dist中
  • 把配置文件config.ini放置在dist目录下xxx目录下的_internal文件夹中(如果没有配置文件略过)。注意,我代码中使用以下语句来读取配置文件的路径。
    os.path.abspath(os.path.dirname(__file__))
  • 如果要取消激活虚拟环境,切换到Scripts目录下,执行deactivate

常见问题

在没有把py文件放到scripts目录的时候,我遇到了很多问题,总是提示包找不到,尝试了网上很多方法都不行。最后把py文件放在scripts下打包后正常。

如果不能确定配置文件的路径,可以在代码中通过print输出,然后pyinstaller打包时,用-c选项打包,运行时在命令行可以看到绝对路径是什么。

一段时间后再次打包出现下面问题:

和之前可以运行的版本对比,竟然是因为缺少了ffi.dll文件。把ffi.dll文件从anaconda文件夹下拷贝后放在scripts文件夹下重新打包后正常。

心得体会

最开始很排斥用venv,直到发现不同电脑,不同版本会折腾死人,才发现venv真的很好。而且这样打包,最终文件很小。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值