即使在添加到PATH之后,在Windows CMD中也无法识别python

jef*_*eff 7 python windows command-line cmd python-3.x

我正试图在我的Windows 7 64位机器上编写并运行Python脚本.我在C:/ Python34中安装了Python,并将其添加到我的Windows'PATH变量中:

C:\Python34; C:\Python34\python.exe
Run Code Online (Sandbox Code Playgroud)

(第二个可能没有意义,但我尝试过)但仍然在Windows命令行中出现此错误:

C:\Users\me>python test.py
'python' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

那么如何在我的Windows x64机器上真正安装Python呢?

tat*_*ine 38

我做了一切:

  • 将 Python 添加到 PATH
  • 卸载所有 Python - 从下载的 python.org 和 Microsoft Store 中卸载,然后从 python.org 重新安装
  • 更改 PATH 的顺序
  • %USERPROFILE%\AppData\Local\Microsoft\WindowsApps从路径中删除

但没有任何效果。对我有用的是: 设置 > 应用程序 > 应用程序执行别名。然后从这里禁用所有 Pyhton,它就工作了! 应用程序执行别名


小智 10

这可能是微不足道的,但您是否尝试关闭命令行窗口并打开一个新窗口?这应该重新加载所有环境变量.尝试输入

echo %PATH%
Run Code Online (Sandbox Code Playgroud)

进入命令提示符,看看你是否可以在那里找到你的Python目录.

此外,添加到PATH环境变量的第二部分确实是不必要的.

  • 第二部分不仅是不必要的,而且是无效的.只将目录添加到`PATH`,并且不要在分号后面留一个空格.您还可以在当前进程中修改`PATH`.运行`set PATH =%PATH%; C:\ Python34`.但如果您修改注册表中的值,它只是永久性的. (2认同)

小智 9

我有同样的问题:python没有被识别,在路径中的python没有被截断.

在yossim回答eryksun的评论之后:

此外,如果为所有用户安装,则应具有%SystemRoot%\ py.exe,其中>通常为C:\ Windows\py.exe.所以没有在PATH中设置Python的目录>你可以简单地运行py来启动Python; 如果安装2.x使用py -3,因为> Python 2是默认值. - eryksun

我试图使用py而不是python,它工作.含义:python setup.py build - >不起作用.py setup.py build - >确实有效.希望能帮助到你

  • 呃……我就知道这种事很蠢。一直试图使用“python”或“python3.7”的一些变体。这次真是万分感谢。作为记录,使用“py”而不是“python” (4认同)

小智 8

即使添加路径后它对我也不起作用。最终起作用的是更改PATH变量中列出的路径的顺序。我%USERPROFILE%\AppData\Local\Microsoft\WindowsApps向下移动而不是让它成为那里列出的第一条路径。


小智 6

我也遇到了同样的问题。

原来我添加的路径在末尾包含 '..\python.exe' ,事实证明这不是必需的。我只需要添加'python.exe'所在的目录(在我的例子中是用户文件夹中Anaconda的分发目录),类似于我们在系统的PATH变量中安装JDK时所做的。

希望能帮助到你!


bco*_*rso 5

环境路径长度限制为 1024 个字符

如果重新启动cmd窗口不起作用,您可能已达到PATH的字符限制,即1024 个字符,出乎意料的短。

请注意,用户界面将很高兴地允许您定义一个比 1024 长得多的 PATH,并且只会截断比这更长的任何内容。使用

echo %PATH%
Run Code Online (Sandbox Code Playgroud)

在 cmd 窗口中查看 PATH 是否被截断。

解决方案

不幸的是,除了从PATH中删除其他内容之外,没有什么好方法可以解决这个问题。


注意:您的PATH = SYSTEM_PATH + USER_PATH,因此您需要确保组合值 < 1024。