在Windows 7上添加Pythonpath

我一直在试图添加Python的path到Windows 7的命令行,但无论我尝试的方法,似乎没有任何工作。 我已经使用了set命令,我试过通过编辑环境variables提示符来添加它。

更进一步,如果我在命令行上运行set命令,它会列出这个

 python = c:\python27 

但它仍然不能识别Python命令。

阅读文档和各种其他来源似乎没有帮助。

编辑:只是为了进一步澄清,我已经在编辑环境提示中追加了Python可执行文件的path到PATH。 似乎没有工作。

  1. 保持胜利 ,然后按暂停
  2. 点击高级系统设置。
  3. 点击环境variables。
  4. 追加;C:\python27Pathvariables。
  5. 重新启动命令提示符。

在Windows中设置环境variables时,我曾多次出错。 我想我应该分享一些过去的错误,希望这可以帮助别人。 (这些适用于所有环境variables,而不仅仅是设置Pythonpath)

注意这些可能的错误:

  1. 杀死并重新打开你的shell窗口:一旦你改变了环境variables,你必须重新启动你正在testing的窗口。
  2. 设置variables时没有空格 。 确保你正在添加;C:\Python27没有任何空格。 (通常尝试C:\SomeOther; C:\Python27分号后的空格(␣) 不正确)
  3. 在拼写完整path时使用后向斜线 。 你会看到正斜线,当你尝试echo $PATH但只有反向斜线已经为我工作。
  4. 不要添加最终的反斜杠 。 只有C:\Python27 NOT C:\Python27\

希望这有助于某人。

使用pipe理员权限打开cmd .exe(右键单击应用程序)。 然后键入:

setxpath“%path%; C:\ Python27;”

请记住以分号结尾,不要包含尾部的斜杠。

我有一个很长的时间这个问题。 我用我能想到的所有方式将它添加到我的path中,但是这里终于为我工作了:

  1. 右键单击“我的电脑”
  2. 点击“属性”
  3. 点击侧面板上的“高级系统设置”
  4. 点击“环境variables”
  5. 点击系统variables下面的“新build”
  6. 在名字中inputpythonexe (或任何你想要的)
  7. 在值中input您的Python的path (例如: C:\Python32\
  8. 现在编辑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%添加到PATHvariables:

...;%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相同)

删除反斜杠。 一切正常。