在Windows7上添加Python路径
我一直在尝试将Python路径添加到Windows7上的命令行,但是无论我尝试了什么方法,似乎都没有任何效果。我使用了在Windows7上添加Python路径,python,windows,python-2.7,path,Python,Windows,Python 2.7,Path,我一直在尝试将Python路径添加到Windows7上的命令行,但是无论我尝试了什么方法,似乎都没有任何效果。我使用了set命令,尝试通过编辑环境变量提示符等添加它 此外,如果在命令行上运行set命令,它会列出以下内容 python = c:\python27 但它仍然无法识别Python命令 阅读文档和其他各种来源似乎没有什么帮助 编辑:为了进一步澄清,我在编辑环境提示符中将Python可执行文件的路径附加到path中。似乎不起作用。您可以使用path=命令从当前cmd窗口设置路径。这将仅为
set
命令,尝试通过编辑环境变量提示符等添加它
此外,如果在命令行上运行set命令,它会列出以下内容
python = c:\python27
但它仍然无法识别Python命令
阅读文档和其他各种来源似乎没有什么帮助
编辑:为了进一步澄清,我在编辑环境提示符中将Python可执行文件的路径附加到path中。似乎不起作用。您可以使用
path=
命令从当前cmd窗口设置路径。这将仅为当前cmd实例添加它。如果要将其永久添加,则应将其添加到系统变量中。(计算机>高级系统设置>环境变量)
您将转到cmd实例,并放入PATH=C:/Python27/;%路径%
;C:\python27
到路径
变量我对这个问题已经有很长一段时间了。我用我能想到的任何方法将它添加到我的路径中,但以下是最终对我有效的方法:
pythonexe
(或任何您想要的内容)C:\Python32\
)%pythonexe%代码>到已有内容的结尾
编辑:
最近我一直在用它,看起来效果很好。还有一个看起来也不错的,尽管我从未尝试过。确保不要在新目录前添加空格 好: 古老的古老的古老的新的 坏的:
古老的古老的古老的新建在Windows中设置环境变量时,我多次出错。 我想我应该在这里分享我过去的一些错误,希望它能帮助别人。 (这些应用于所有环境变量,而不仅仅是在设置Python路径时) 请注意以下可能出现的错误:
;C:\Python27
不带空格。(通常尝试C:\somether;C:\Python27
该空间(␣) 在分号后面是不正确的。)echo$path
时会看到正斜杠,但只有反斜杠对我有效C:\Python27
NOTC:\Python27\
希望这对某人有所帮助。我知道这篇文章很旧,但我想补充一点,解决方案假定具有管理员权限。如果您没有这些权限,您可以: 转到控制面板,键入path(现在是Windows 7,所以在搜索框中),然后单击“编辑帐户的环境变量”。现在您将看到顶部为“用户变量”,下面为“系统变量”的环境变量对话框 作为用户,您可以单击顶部的“新建”按钮并添加: 变量名:路径
变量值:C:\Python27 (无空格)并单击“确定”。重新启动命令提示符后,用户变量中的任何路径都将附加到系统路径的末尾。它不会以任何其他方式替换该路径 如果要设置特定的完整路径,最好创建一个类似以下小文件的批处理文件:
@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.bat
文件添加到System32
文件夹,当您键入python
时,命令行现在将运行python
python.bat
@C:\Python27\python.exe %*
资料来源:
以管理员权限打开cmd.exe(右键单击应用程序)。然后键入: setx路径“%path”;C:\Python27
请记住以分号结尾,不要包含尾随斜杠。您需要更改系统变量
--右键单击“我的电脑”
--单击“属性”
--单击侧面板中的“高级系统设置”
--单击环境变量--您将看到用户变量和系统变量的两部分
--在系统变量部分搜索变量“路径”下,单击编辑并添加
“C:\Python27;”
(不带引号)保存它--现在打开命令行类型“path”,点击回车键,您将看到path变量已被修改
--现在键入
python--version
您将看到python版本
完成后以下程序将向您的环境添加python可执行文件路径和subdir脚本(即安装pip和easy_install的位置)。它从绑定.py扩展名的注册表项中查找python可执行文件的路径。它将删除您环境中的旧python路径。适用于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 (e.g. 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)
这个问题很老了,但我刚刚遇到了一个类似的问题,我的特定解决方案没有列出
c:\python27\tools\scripts\win_add2path.py
C:\>echo %PYTHONPATH%
C:\python27;c:\python27\lib;C:\python27\scripts
set Path=%path%
set Path=C:/Python27
C:\Users\alber\AppData\Local\Programs\Python\Python39\
C:\Users\alber\AppData\Local\Programs\Python\Python39\Scripts\
C:\Users\username> cd C:\bin
C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
phpunit path-to-your-test