第一次提问:为啥'py'被识别但'python'不被识别?在终端中运行的快捷方式? 'echo %PATH%' 给出巨大的路径?

Posted

技术标签:

【中文标题】第一次提问:为啥\'py\'被识别但\'python\'不被识别?在终端中运行的快捷方式? \'echo %PATH%\' 给出巨大的路径?【英文标题】:First time questions: why is 'py' recognized but 'python' not? Shortcut for running in terminal? 'echo %PATH%' giving huge paths?第一次提问:为什么'py'被识别但'python'不被识别?在终端中运行的快捷方式? 'echo %PATH%' 给出巨大的路径? 【发布时间】:2019-08-14 18:59:48 【问题描述】:

我昨天刚刚安装了 Python 和 VScode。我试图使用 pip 安装更新,但命令 python 不起作用。但是 py 可以。我想知道为什么会这样,是否有办法让命令 python 被识别。

此外,我想知道是否有一种更快的方法来运行终端/快捷方式,而不是右键单击然后选择在终端中运行 Python 文件

最后,我想了解我是否在安装过程中搞砸了,因为当我运行setx PATH "%PATH%;C:\Python34\Scripts" 然后echo %PATH% 时,我看到的不是C:\Python34\Scripts,而是一大块路径,例如:

C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C: \Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C: \Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C :\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\yiyan\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C :\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files ( x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramDat a\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86 )\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\yiyan \AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32 \OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86 )\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramData\Oracle\Java\javapath;C :\W

感谢您的宝贵时间!

【问题讨论】:

【参考方案1】:

我认为控制台命令是 'py' 而不是 'python' 在 Python 3.8 之后。直到几天前,我才拥有 Python 3.7,当我更新时也感到困惑。

【讨论】:

【参考方案2】:

您的路径输出受长度限制 - 您的路径更长,并在 C:\W 处截断 - 谷歌如何使用 Windows 方法检查您的路径:edit path 并检查它。

你应该清理你的路径变量 - 它太长并且有重复:

t = r"""C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\yiyan\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\yiyan\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\ProgramData\Oracle\Java\javapath;C:\W"""

from collections import Counter    
print (Counter(t.split(";")))

输出:

Counter(
    'C:\\WINDOWS\\system32': 4, 
     'C:\\WINDOWS': 4, 
     'C:\\WINDOWS\\System32\\Wbem': 4,
     'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\': 4,
     'C:\\Program Files (x86)\\Razer\\ChromaBroadcast\\bin': 3,
     'C:\\Program Files\\Razer\\ChromaBroadcast\\bin': 3,
     'C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath': 3,
     'C:\\Program Files (x86)\\Razer Chroma SDK\\bin': 3,
     'C:\\Program Files\\Razer Chroma SDK\\bin': 3,
     'C:\\ProgramData\\Oracle\\Java\\javapath': 3,
     'C:\\Windows\\system32': 2,
     'C:\\Windows': 2,
     'C:\\Windows\\System32\\Wbem': 2,
     'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\': 2,
     'C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common': 2,
     'C:\\Users\\yiyan\\AppData\\Local\\Microsoft\\WindowsApps': 2,
     'C:\\WINDOWS\\System32\\OpenSSH\\': 2,
     'C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR': 2,
     'C:\\W': 1)

%path 用于查找当前目录中不存在的文件(简化) - 多次在其中包含相同的目录是没有意义的。

如果可执行文件位于目录中 - 可以使用 %path 中的第一个条目找到它 - 以后无需再查看 6 个文件夹。

清理完你的骗子后,将 python 文件夹添加到你的路径中。

【讨论】:

除了清理我的路径,还有什么问题吗?当我输入 echo %PATH% 时,我只希望输出 C:\Python34\Scripts @teleluck %PATH% 是一个 windows 变量,如果它不在您当前的目录中,它会保存搜索内容的完整路径 - 您应该 not 只有 C:\Python34\Scripts 在它。请参阅en.wikipedia.org/wiki/PATH_(variable) 在编辑之前 - 确保你知道你在那里做什么...... @tele 这也可能对您有所帮助:SO: how-to-add-to-the-pythonpath-in-windows 非常感谢!我清理了本地 PATH,现在了解 %PATH% 现在做了什么。【参考方案3】:

在 cmd 中输入:

copy py.exe python.exe

在地图中:

C:\Windows\system32

去那里键入:

cd C:\Windows\system32

在cmd中

【讨论】:

这看起来很不安全的建议。 “有效”的方法并不总是安全的。你知道py.exe是哪个版本吗?如果您更新 python 并将当前的 C:\Python34 替换为更新的 C:\Python37 怎么办?如果您通过建议的解决方案使用 C:\Windows\system32 中的py.exe,则不会执行此更改。如果您将 %PATH% 的内容更改为包含 C:\Python37 而不是 C:\Python34,这将被拾取。等 为什么不保存?

以上是关于第一次提问:为啥'py'被识别但'python'不被识别?在终端中运行的快捷方式? 'echo %PATH%' 给出巨大的路径?的主要内容,如果未能解决你的问题,请参考以下文章

python 为啥不建议用threadpool

Python 导入未被识别

python setup.py install 出错

人脸识别为啥用python开发

为啥 Python 不能识别我的 utf-8 编码源文件?

python调用其他py文件的变量,为啥总会把这个调用的py文件先运行一遍。。