当前位置:   article > 正文

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

no module named 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/694759
推荐阅读
相关标签
  

闽ICP备14008679号