Python,PyInstaller错误:没有名为“Encodings”的模块和系统编解码器缺失。

14

我正在使用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'

我已经尝试在我的测试脚本中导入'encodings'模块,但仍然不起作用,我也尝试了py2exe,但根本不起作用。

我做错了什么吗?我需要在我的PATH中设置什么吗?正确的路径"C:\Python33"已经包含在其中了。

编辑:对于所有遇到这个问题的人:我放弃了,在重新安装Windows和Python以及所有其他东西之后,我再次尝试了同样的方法,没有任何问题。如果你真的很绝望,那值得一试!


你有没有想过“你的SYS编码数据在哪里”,以及如何使用Python的“encodings”?所有操作系统的详细信息都是公开使用的吗?初始化意味着“未注册”。这个问题与你的“Python信息水平”有关。所以一个技巧:这段代码在空闲时工作,因为它被授予了很多权限,并且在更多的服务/类中注册(非公共)。初始化是哪种风格的“永久/临时”? - dsgdfg
是的,我知道 这不是低级注释 - dsgdfg
重复的问题:https://dev59.com/dm025IYBdhLWcg3w960W - Alastair McCormack
3个回答

2

这可能是因为pyinstaller在编译时没有包含该模块。请尝试以下解决方案:

1)在编译期间指定模块的路径:

  • pyinstaller --onefile --paths=/path/to/module Testscript.py

2)从.spec文件中指定路径:

  • run this command first(in pyinstaller's directory):

    python Makespec.py --onefile /path/to/yourscript.py
    
  • now you have the .spec file. open it in your text editor, and add the path to your modules to the pathex.

    pathex=['C:\\path\\to\\module']
    
  • then, build your program:

     python Build.py /path/to/yourscript.spec
    

3) 使用隐藏导入:

  • pyinstaller --onefile --hidden-import=模块名 Testscript.py
  • 您也可以在.spec文件中指定隐藏的导入。

或者你可以(如果pyinstaller在你的路径中)从任何目录运行“pyinstaller /path/to/your.spec” - Back2Basics
2
嗯,“encodings”是Python标准库模块……不是吗? - Gustavo6046

0
你使用的是哪个Windows版本(7还是10)?
这个问题似乎与用户权限有关...假设它类似于this issue,你可以首先尝试以管理员权限运行你的exe文件,如果仍然失败,请尝试在以管理员权限运行的cmd.exe中运行"Pyinstaller"。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接