这个问题听起来可能有点愚蠢,但除非工作目录位于 c: 驱动器上,否则我似乎无法从 cmd 访问 python。最终,我想在网络文件夹 (z:) 上运行脚本,但 python 甚至无法从我的辅助内部驱动器 (d:) 执行
示例 cmd 窗口文本:
Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.
C:\Users\usrname>python
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\Users\usrname>z:
Z:\>python
'python' is not recognized as an internal or external command,
operable program or batch file.
Z:\>d:
D:\>python
'python' is not recognized as an internal or external command,
operable program or batch file.
D:\>
调用其他程序(如 pip)以及 cygwin 中的许多命令(将 cygwin/bin 添加到 %path%)都可以正常工作,但 Python 仍然很顽固。有人能向我解释为什么会发生这种情况吗?
编辑:这是我的%path%
C:\Users\usrname\Downloads>echo %PATH%
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\cygwin64\bin;C;\Python27\WinPython-32bit-2.7.10.2\python-2.7.10;C:\Python27;C:\Python27\WinPython-32bit-2.7.10.2\python-2.7.10\Scripts;C:\Program Files (x86)\CMake\bin
答案1
如果您确实添加了cygwin/bin
路径,那么这就是它不起作用的原因。
这是一个相对路径,它只能从该文件夹所在的驱动器的根目录(即)开始C:
起作用C:\cygwin\bin
。
否则,当打开时D:
,Windows 将搜索D:\cygwin\bin
并高兴地报告它不在那里。同样适用于C:\Users\usrname
您声称所在的位置,然后C:\Users\usrname\cygwin/bin
将被搜索。
因此,我假设您/cygwin/bin
在路径中添加了斜杠(反斜杠)。只要您在驱动器上,它就会起作用,无论您当前的目录是什么C:
。
您需要添加的绝对路径%path%
,包括驱动器号。
根据您的编辑,您的 python 路径中有一个拼写错误:
C;\Python27\WinPython-32bit-2.7.10.2\python-2.7.10
分号应为冒号。请注意,这确实验证了上述语句:此路径条目意味着您有两个路径条目:C
和\Python27\WinPython-32bit-2.7.10.2\python-2.7.10
,后者使其仅从驱动器运行C:
,因为这是唯一包含该目录的驱动器。