在Windows 7上添加Pythonpath
我一直在试图添加Python的path到Windows 7的命令行,但无论我尝试的方法,似乎没有任何工作。 我已经使用了set
命令,我试过通过编辑环境variables提示符来添加它。
更进一步,如果我在命令行上运行set命令,它会列出这个
python = c:\python27
但它仍然不能识别Python命令。
阅读文档和各种其他来源似乎没有帮助。
编辑:只是为了进一步澄清,我已经在编辑环境提示中追加了Python可执行文件的path到PATH。 似乎没有工作。
- 保持胜利 ,然后按暂停 。
- 点击高级系统设置。
- 点击环境variables。
- 追加
;C:\python27
到Path
variables。 - 重新启动命令提示符。
在Windows中设置环境variables时,我曾多次出错。 我想我应该分享一些过去的错误,希望这可以帮助别人。 (这些适用于所有环境variables,而不仅仅是设置Pythonpath)
注意这些可能的错误:
- 杀死并重新打开你的shell窗口:一旦你改变了环境variables,你必须重新启动你正在testing的窗口。
- 设置variables时没有空格 。 确保你正在添加
;C:\Python27
没有任何空格。 (通常尝试C:\SomeOther; C:\Python27
分号后的空格(␣) 不正确) - 在拼写完整path时使用后向斜线 。 你会看到正斜线,当你尝试
echo $PATH
但只有反向斜线已经为我工作。 - 不要添加最终的反斜杠 。 只有
C:\Python27
NOTC:\Python27\
希望这有助于某人。
使用pipe理员权限打开cmd .exe(右键单击应用程序)。 然后键入:
setxpath“%path%; C:\ Python27;”
请记住以分号结尾,不要包含尾部的斜杠。
我有一个很长的时间这个问题。 我用我能想到的所有方式将它添加到我的path中,但是这里终于为我工作了:
- 右键单击“我的电脑”
- 点击“属性”
- 点击侧面板上的“高级系统设置”
- 点击“环境variables”
- 点击系统variables下面的“新build”
- 在名字中input
pythonexe
(或任何你想要的) - 在值中input您的Python的path (例如:
C:\Python32\
) - 现在编辑pathvariables(在系统部分)并添加
%pythonexe%;
到现在已经结束
IDK为什么这个工作,但它为我做。
然后尝试在命令行input“python”,它应该工作!
编辑:
最近我一直在使用这个程序 ,似乎工作得很好。 也有这个看起来不错,但我从来没有尝试过。
尝试添加这个python.bat
文件到System32
文件夹,命令行现在将在python中input时运行python
python.bat
@C:\Python27\python.exe %*
资源:
https://github.com/KartikTalwar/dotfiles/blob/master/bat/python.bat
您可以使用PATH =
命令从当前cmd窗口设置path。 这只会将其添加到当前cmd实例。 如果你想永久添加它,你应该把它添加到系统variables。 (计算机>高级系统设置>环境variables)
你会得到你的CMD实例,并把PATH = C:/Python27/
。
确保在新目录之前不要添加空格。
好:老,老,老,新
坏的:旧的;旧的;旧的; 新
以下程序将向您的环境中添加python可执行文件path和子目录脚本(这是安装pip和easy_install的地方)。 它从绑定.py扩展名的registry项中findpython可执行文件的path。 它将删除您的环境中的旧pythonpath。 与XP(也可能是Vista)一起使用。 它只使用基本的Windows安装程序附带的模块。
# coding: utf-8 import sys import os import time import _winreg import ctypes def find_python(): """ retrieves the commandline for .py extensions from the registry """ hKey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, r'Python.File\shell\open\command') # get the default value value, typ = _winreg.QueryValueEx (hKey, None) program = value.split('"')[1] if not program.lower().endswith(r'\python.exe'): return None return os.path.dirname(program) def extend_path(pypath, remove=False, verbose=0, remove_old=True, script=False): """ extend(pypath) adds pypath to the PATH env. variable as defined in the registry, and then notifies applications (eg the desktop) of this change. !!! Already opened DOS-Command prompts are not updated. !!! Newly opened prompts will have the new path (inherited from the updated windows explorer desktop) options: remove (default unset), remove from PATH instead of extend PATH remove_old (default set), removes any (old) python paths first script (default unset), try to add/remove the Scripts subdirectory of pypath (pip, easy_install) as well """ _sd = 'Scripts' # scripts subdir hKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 0, _winreg.KEY_READ | _winreg.KEY_SET_VALUE) value, typ = _winreg.QueryValueEx (hKey, "PATH") vals = value.split(';') assert isinstance(vals, list) if not remove and remove_old: new_vals = [] for v in vals: pyexe = os.path.join(v, 'python.exe') if v != pypath and os.path.exists(pyexe): if verbose > 0: print 'removing from PATH:', v continue if script and v != os.path.join(pypath, _sd) and \ os.path.exists(v.replace(_sd, pyexe)): if verbose > 0: print 'removing from PATH:', v continue new_vals.append(v) vals = new_vals if remove: try: vals.remove(pypath) except ValueError: if verbose > 0: print 'path element', pypath, 'not found' return if script: try: vals.remove(os.path.join(pypath, _sd)) except ValueError: pass print 'removing from PATH:', pypath else: if pypath in vals: if verbose > 0: print 'path element', pypath, 'already in PATH' return vals.append(pypath) if verbose > 1: print 'adding to PATH:', pypath if script: if not pypath + '\\Scripts' in vals: vals.append(pypath + '\\Scripts') if verbose > 1: print 'adding to PATH:', pypath + '\\Scripts' _winreg.SetValueEx(hKey, "PATH", 0, typ, ';'.join(vals) ) _winreg.SetValueEx(hKey, "OLDPATH", 0, typ, value ) _winreg.FlushKey(hKey) # notify other programs SendMessage = ctypes.windll.user32.SendMessageW HWND_BROADCAST = 0xFFFF WM_SETTINGCHANGE = 0x1A SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment') if verbose > 1: print 'Do not forget to restart any command prompts' if __name__ == '__main__': remove = '--remove' in sys.argv script = '--noscripts' not in sys.argv extend_path(find_python(), verbose=2, remove=remove, script=script)
Python附带一个小工具,可以做到这一点 。 从命令行运行:
c:\python27\tools\scripts\win_add2path.py
确保closures命令窗口(带有exit
或closuresbutton)并再次打开。
我知道这个post是旧的,但我想补充说,解决scheme假定pipe理权限。 如果你没有这些,你可以:
转到控制面板,键入path(这是现在Windows 7,所以这是在search框中),然后单击“编辑您的帐户的环境variables”。 现在,您将看到“variables”对话框的顶部是“用户variables”,下面是“系统variables”。
您可以作为用户单击顶部的“新build”button,并添加:
variables名称: PATH
variables值: C:\ Python27
(任何地方都没有空格),然后点击OK。 一旦命令提示符重新启动,用户variables中的任何PATH都会附加到系统path的末尾。 它不会以任何其他方式取代PATH。
如果你想设置一个特定的完整path,你最好创build一个像这样的小文件:
@echo off PATH C:\User\Me\Programs\mingw\bin;C:\User\Me\Programs;C:\Windows\system32 title Compiler Environment - %Username%@%Computername% cmd
把它叫做“compiler.bat”或者其他东西,然后双击来启动它。 或者链接到它。 或者钉等等…
对于任何想用Python 3.3+来实现这一点的人来说,Windows安装程序现在包含一个选项来将python.exe添加到系统searchpath中。 阅读文档中的更多内容。
使用Windows环境variables总是一个可怕的经验。 最近,我发现了一个叫Rapid Environment Editor的惊人工具,它提供了一个非常简单的GUI来pipe理它们。
如果您使用巧克力,您可以使用choco install rapidee
来安装它。 否则,请查看http://www.rapidee.com/en/download
重读这个,听起来像是付出了一些代价,但是我发誓我不是! 这只是我的工具包中最有用的工具之一,我很惊讶,似乎没有人知道这件事。
如果Python与其他程序(例如ArcGIS 10.1)一起安装,则还必须在环境variables中包含任何指向python.exe的额外文件夹。
所以我的环境variables看起来像这样:
系统variables>path>添加;C:\Python27\ArcGIS10.1
这个问题是相当古老的,但我碰到类似的问题,我的具体解决scheme没有在这里列出:
确保你的path中没有一个不存在的文件夹。
在我的情况下,我有一堆默认文件夹(Windows,Powershell,Sql服务器等),然后我通常使用自定义的C:\bin
,然后像c:\python17
等各种其他的调整。事实certificate, cmd处理器发现c:\bin
不存在,然后停止处理其余的variables。
另外,我不知道没有PATH经理我会注意到这一点。 它很好地强调了这个项目是无效的事实。
我刚刚在Windows 7上使用选项“add python to PATH”安装了Python 3.3。
在PATHvariables中,安装程序会自动添加最后一个反斜杠 : C:\Python33\
,所以它不能在命令提示符下工作 (我尝试closures/打开提示符多次)
我删除了最后的反斜杠 ,然后它工作: C:\Python33
感谢Ram Narasimhan为您的提示#4!
我使用cmd在Win7 64位下组织了我的python环境variables。
我通过windows的环境variables菜单设置variablesPYTHONPATH
并将%PYTHONPATH%
添加到PATH
variables:
...;%PYTHONPATH%
cmd shell正确地扩展了这个variables:
C:\>echo %PYTHONPATH% C:\python27;c:\python27\lib;C:\python27\scripts
更改PATH后不要忘记重新启动cmd shell。
您需要对系统variables进行更改
– 右键单击“我的电脑”
– 点击“属性”
– 点击侧面板上的“高级系统设置”
– 点击环境variables – 你将会有两个部分的用户variables和系统variables
– 在系统variables部分searchvariables'path'点击编辑并添加
"C:\Python27;"
(不含引号)保存
– 现在打开命令行types“path”点击进入,你会看到pathvariables已被修改
– 现在inputpython --version
你会看到python版本
它完成了
我的系统是Windows7 32位,安装了Python 2.7.12(因为pdfminer不支持Python 3.X …. T ^ T)
有同样的问题,我的命令窗口识别单词“python”。
原来,在PATHvariables中,自动添加了一个最终的反斜杠:C:\ Python33 \(与上面提到的Charlie相同)
删除反斜杠。 一切正常。