我正在使用Python 3.3.3,并且我一直在尝试从简单的.py脚本构建.exe。
我的脚本如下所示:
import encodings
print('Test')
并正确执行。
当我尝试使用此命令使用PyInstaller构建它时:
pyinstaller --onefile Testmodul.py
并尝试打开我的.exe,显示此错误:
Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'
我已经尝试在我的测试文件中导入'编码'模块,但它仍然无法正常工作,我也尝试了py2exe,它也完全无法正常工作。
我有什么问题吗?我必须在PATH中设置一些东西吗?已经包含了“C:\ Python33”的正确路径。
编辑:对于有这个问题的每个人:我放弃了,在全新安装windows和python以及所有其他东西之后,我再次尝试了它,就像以前一样,它没有问题。它是值得一试,如果你真的很绝望!答案 0 :(得分:2)
这可能是因为pyinstaller首先没有包含该模块。请尝试以下解决方案之一。
1)在编译期间指定模块的路径:
2)指定.spec文件中的路径:
首先运行此命令(在pyinstaller的目录中):
python Makespec.py --onefile /path/to/yourscript.py
现在您拥有.spec文件。在文本编辑器中打开它,并将模块的路径添加到pathex。
pathex=['C:\\path\\to\\module']
然后,构建你的程序:
python Build.py /path/to/yourscript.spec
3)使用隐藏导入:
答案 1 :(得分:0)
将名为hook-encodings.py
的挂钩文件添加到C:\Python\Lib\site-packages\PyInstaller\hooks
位置,并添加以下代码行以在挂钩文件中收集编码模块
from PyInstaller.utils.hooks import collect_submodules
hiddenimports = collect_submodules('encodings')
这可能有用, 这个答案可能会帮助你Pyinstaller Error for Djnago project "ImportError: No module named 'django.contrib.admin.apps'"
答案 2 :(得分:0)
您使用的是哪个Windows版本(7或10)?
此问题似乎与用户权限相关...并且假设它与this issue类似,您可能首先尝试使用管理员权限运行 exe 文件,如果是再次出现问题,尝试运行" Pyinstaller"来自以管理员权限运行的 cmd.exe 。