Python 3.7.7嵌入式 - 致命的Python错误:initfsencoding:无法加载文件系统编解码器。

3
我正在做一个项目,需要安装python-3.7.7-embed-amd64。我从这里下载:https://www.python.org/downloads/release/python-377/ 当我尝试运行这些命令时,收到以下输出:
> python --version
  Python 3.7.7

> python
  Fatal Python error: initfsencoding: unable to load the file system codec
  ModuleNotFoundError: No module named 'encodings'

我发现有些解决方案认为环境变量可能没有正确设置。但我认为我的环境变量已经正确设置了。

> echo %PATH%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\MySQL\MySQL Utilities 1.6\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\ela\python-3.7.7-embed-amd64;C:\Program Files\Java\jdk1.8.0_231\bin;C:\Users\ela\apache-maven-3.6.3\bin;C:\Users\ela\AppData\Local\Programs\Git\cmd;C:\Program Files\PostgreSQL\9.5\bin;C:\ProgramData\chocolatey\lib\payara\tools\payara41\bin;C:\Users\ela\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\ela\WildFly\wildfly-10.1.0.Final\bin;C:\Users\ela\npm-global\node_modules\@angular\cli\bin;C:\Users\ela\AppData\Local\atom\bin;

所以,我在路径中有正确的Python路径:C:\Users\ela\python-3.7.7-embed-amd64;

你认为我应该尝试什么来消除这个错误?

Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

我在使用Cython编译的可执行文件中嵌入Python时遇到了同样的问题。你最终解决了你的问题吗? - undefined
1个回答

0
这个错误很可能是因为运行了未经修改的Windows embed.zip文件导致的。
Windows Python embed.zip发行版需要进行一些修改,它不能直接“开箱即用”。
我创建了一个PowerShell脚本,PythonEmbed4Win.ps1,用于安装从互联网下载的embed.zip Python发行版,并对安装进行修改,以便无错误地运行。
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/jtmoon79/PythonEmbed4Win/main/PythonEmbed4Win.ps1" -OutFile "PythonEmbed4Win.ps1"

.\PythonEmbed4Win.ps1 -Version 3.7

所以,在路径中我有正确的Python路径:C:\Users\ela\python-3.7.7-embed-amd64;
只有当您想要在命令行中直接输入"python"时,才需要修改PATH。否则,通过完整路径调用python(python.exe),例如C:\Users\ela\python-3.7.7-embed-amd64\python.exe。

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