第一次提问:为啥'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%' 给出巨大的路径?的主要内容,如果未能解决你的问题,请参考以下文章