在 cmd 中使用命令 'python3' 引发致命 Python 错误
Throws Fatal Python error using command 'python3' in cmd
尝试在 win10 上使用 python3。
这是我尝试使用时得到的结果:
> python3 myscript.py
Fatal Python error: Py_Initialize: unable to load the file system codec
File "C:\Python27\Lib\encodings\__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Current thread 0x00001e44 (most recent call first):
可能的问题,我的系统上也有 2.7。
使用命令 py
和 python
有效。他们 运行 python 2.7 脚本没有问题。
我已将我的文件夹添加到 PYTHONPATH。
有人知道答案吗?
将 python 添加到主 PATH 变量。
C:\Python35;C:\Python35\Lib\site-packages\;C:\Python35\Scripts\
将版本 # 替换为您正在使用的版本。也请查看 python 的 virtualenv。它在 libs 下,可以通过 PIP 安装。
当 运行 在一台计算机上安装多个版本时,它会为您节省很多时间和麻烦,而且超级好用!
问题是您在 PYTHONPATH 中混合了 python 2 和 3 环境。您告诉 python 3 从 python 2 发行版中查找和导入模块非常好。那将以泪水告终。
Python 在您 运行 时已经知道它的标准安装目录。这涵盖了 stdlib 和您明确安装的任何模块(例如,通过 pip)。 PYTHONPATH 只需要你没有安装但只是复制到某处的东西。
PYTHONPATH(通常)对 scripts
目录或 python.exe 本身没有用。脚本和 .exe 需要由操作系统找到,而不是 python,因此需要在 PATH 上。
Window 管理人员可以通过将文件扩展名与程序关联到 运行 该扩展名来增加复杂性。因此,在 Windows 中,您必须通过单击桌面来选择是否 python 2 或 3 个脚本 运行 可用。 Python 安装程序通过创建知道调用哪个 python 的包装器来尝试变得聪明。
在 windows 上安装后,您可能希望将脚本和 .exe 目录添加到您的路径中。您可以对 python 2 和 3 都这样做……但有一点问题。如果您在 python 2 和 3 中有同名脚本,则路径中的第一个脚本优先。
我认为您可以完全删除 PYTHONPATH 并确保它们在 PATH 中。我的 windows python 安装与您的稍有不同,因此我无法通过测试来确定。
C:\Python27
C:\Python27\Scripts
C:\Python36
C:\Python36\Scripts
尝试在 win10 上使用 python3。
这是我尝试使用时得到的结果:
> python3 myscript.py
Fatal Python error: Py_Initialize: unable to load the file system codec
File "C:\Python27\Lib\encodings\__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Current thread 0x00001e44 (most recent call first):
可能的问题,我的系统上也有 2.7。
使用命令 py
和 python
有效。他们 运行 python 2.7 脚本没有问题。
我已将我的文件夹添加到 PYTHONPATH。
有人知道答案吗?
将 python 添加到主 PATH 变量。
C:\Python35;C:\Python35\Lib\site-packages\;C:\Python35\Scripts\
将版本 # 替换为您正在使用的版本。也请查看 python 的 virtualenv。它在 libs 下,可以通过 PIP 安装。
当 运行 在一台计算机上安装多个版本时,它会为您节省很多时间和麻烦,而且超级好用!
问题是您在 PYTHONPATH 中混合了 python 2 和 3 环境。您告诉 python 3 从 python 2 发行版中查找和导入模块非常好。那将以泪水告终。
Python 在您 运行 时已经知道它的标准安装目录。这涵盖了 stdlib 和您明确安装的任何模块(例如,通过 pip)。 PYTHONPATH 只需要你没有安装但只是复制到某处的东西。
PYTHONPATH(通常)对 scripts
目录或 python.exe 本身没有用。脚本和 .exe 需要由操作系统找到,而不是 python,因此需要在 PATH 上。
Window 管理人员可以通过将文件扩展名与程序关联到 运行 该扩展名来增加复杂性。因此,在 Windows 中,您必须通过单击桌面来选择是否 python 2 或 3 个脚本 运行 可用。 Python 安装程序通过创建知道调用哪个 python 的包装器来尝试变得聪明。
在 windows 上安装后,您可能希望将脚本和 .exe 目录添加到您的路径中。您可以对 python 2 和 3 都这样做……但有一点问题。如果您在 python 2 和 3 中有同名脚本,则路径中的第一个脚本优先。
我认为您可以完全删除 PYTHONPATH 并确保它们在 PATH 中。我的 windows python 安装与您的稍有不同,因此我无法通过测试来确定。
C:\Python27
C:\Python27\Scripts
C:\Python36
C:\Python36\Scripts