python创建虚拟环境打包_python虚拟环境(virtualenv)中使用nuitka打包

nuitka与虚拟环境(virtualenv)

虚拟环境与普通环境的不用在于搜索路径的不同,也就是代码运行时,sys.path中所包含的路径不一样,关于搜索路径的设置charstale:自定义模块搜索路径​zhuanlan.zhihu.com

对于一般环境下面的python代码,使用下面命令打包就能正常运行

nuitka --recurse-all --output-dir=out xxxx.py

如果代码中引用了虚拟环境中的模块,并运行使用上述命令打包exe,运行时候会提示找不到模块(no module named xxx)

解决方法是设置模块搜索路径,一共四种方法,这四种方法对其他找不到模块的情况也适用

A:设定环境变量pythonpath

使用nuitka打包exe之前,在终端中使用如下命令设定设定环境变量pythonpath(可以使用相对路径)指向虚拟环境的site-packages文件夹

set pythonpath=venv\Lib\site-packages

打包过程中,nuitka会在所有模块搜索路径中寻找要用到的包。因为使用了--recurse-all 参数,如果是py或者pyc格式,就会打包进exe,如果是pyd格式(以及可能会用到的dll文件),则需要手动复制到exe同级目录,或者复制到其他模块搜索路径中。

B:使用压缩文件python38.zip

将虚拟环境中的site-packages文件夹中的所有文件,压缩为python38.zip(文件名以python版本为准),放到exe同级目录

zip文件目录结构

p

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值