使用pyinstaller创建Python可执行文件时未导入库
我正在尝试为Windows创建一个Python的.exe文件,创建过程很顺利。但是,当我运行这个应用程序时,我发现它不能执行所有功能,因为并不是所有的库都被导入了;具体来说,PySNMP这个库没有被导入。当我查看构建过程的输出时,我发现根本没有列出PySNMP,尽管我程序中的几个模块都导入了它。有没有人知道这可能是什么原因呢?谢谢!
下面是生成安装程序的代码:
FILES = <main program modules (.py)>
PyInstaller = C:/Python27/pyinstaller
CygPyInstaller = /cygdrive/c/Python27/pyinstaller run : python app.py makespec : $(FILES) @echo "***** PyInstaller: Makespec *****" python $(PyInstaller)/Makespec.py \
--onefile \
--windowed \
--icon=Icons/icon.ico \
--name=Application1045 \
app.py
2 个回答
0
自从提问者问这个问题以来,PyInstaller经历了很多变化。如果你现在遇到类似的问题,可以看看 --hiddenimport
这个 选项。
1
如果你在自定义模块路径,以便导入这些库(比如,我在我的源代码目录下有一个非标准的库,放在./lib/
文件夹里),那么你应该在pyinstaller的命令行中加上--paths=lib
。在代码中间加上sys.path.append("lib")
并没有奏效(我也不太明白如果找不到这些库,它是怎么编译成功的,但确实编译了,这个问题我花了不少时间才找到...)