如果从源代码构建后移动 python 3 目录,则没有命名'encodings'模块



我四处寻找,没有找到任何好的答案。我刚刚从git中提取了python,并在Windows10上构建了它。python.exe文件在生成位置时工作正常,但如果复制或移动生成的文件夹,则在运行python..exe时会出现以下错误:

Python致命错误:Py_Initialize:无法加载文件系统编解码器查找错误:未注册编解码器搜索函数:找不到编码

当前线程0x000060c8(最近的调用优先):.\python致命python错误:Py_Initialize:无法加载文件系统编解码器ModuleNotFoundError:没有名为"encodings"的模块

当前线程0x00004f50(最近调用优先):

如果从构建目录运行python,这是一个奇怪的原因D:UsersbrazgDocumentsGitHubcpythonPCbuildamd64运行良好。我想知道如果amd64目录移出PCbuild,为什么python.exe不运行。

顺便说一句,在从源代码构建之后,我找不到任何关于设置Python根文件夹的信息。

这是一个从未从源代码构建python的人的观点给出的答案

为了回答我自己的问题,在将Python二进制文件从cpythonPCbuild移到另一个位置后需要做的是,您需要从拉取的源中复制Lib目录,因为encodings目录在cpythonLib中。

即使您的构建是在cpythonPCbuild<build directory>中,它仍然从cpythonLib中读取,这是有道理的,但我认为应该在官方python文档中更清楚地说明。

如果将amd64目录复制到新位置,则需要将cpythonLib目录复制到amd64目录中。您还可以从运行build.bat中删除所有使用python构建的.exp, .lib and .pdb文件。因为它们都是编译器的链接器和调试信息。

我希望cpythonPCbuild<build directory>在运行时能读到cpythonLib

相关内容

最新更新