我一直在尝试在Windows 7上将Python路径添加到命令行中,但是无论我尝试哪种方法,似乎都没有任何效果。我使用了该set
命令,尝试通过“编辑环境”变量提示符等添加它。
此外,如果我在命令行上运行set命令,它将列出此内容
python = c:\python27
但是它仍然无法识别Python命令。
阅读文档以及其他各种资源似乎无济于事。
编辑:为了进一步说明,我在编辑环境提示中将Python可执行文件的路径附加到PATH。似乎不起作用。
我一直在尝试在Windows 7上将Python路径添加到命令行中,但是无论我尝试哪种方法,似乎都没有任何效果。我使用了该set
命令,尝试通过“编辑环境”变量提示符等添加它。
此外,如果我在命令行上运行set命令,它将列出此内容
python = c:\python27
但是它仍然无法识别Python命令。
阅读文档以及其他各种资源似乎无济于事。
编辑:为了进一步说明,我在编辑环境提示中将Python可执行文件的路径附加到PATH。似乎不起作用。
Answers:
;C:\python27
到Path
变量。在Windows中设置环境变量时,我在很多情况下都出错了。我认为我应该在这里分享我过去的一些错误,希望对别人有所帮助。(这些适用于所有环境变量,不仅适用于设置Python路径)
当心这些可能的错误:
;C:\Python27
无任何空格。(通常C:\SomeOther; C:\Python27
在分号后尝试使用空格(␣)是不正确的。)echo $PATH
但只有反斜杠对我有用。C:\Python27
不C:\Python27\
希望这对某人有帮助。
echo $path
仅在Windows下运行bash shell(例如MinGW)时才有效。Windows命令提示符命令是echo %path%
以管理员权限打开cmd .exe(右键单击应用程序)。然后输入:
setx路径“%path%; C:\ Python27;”
请记住以分号结尾,并且不要包含斜杠。
我已经很久没有这个问题了。我以各种方式将其添加到我的路径中,但这终于对我有用:
pythonexe
(或您想要的任何名称)C:\Python32\
)%pythonexe%;
到已经存在的末尾IDK为什么这样做有效,但对我有用。
然后尝试在命令行中输入“ python”,它应该可以工作!
编辑:
尝试将此python.bat
文件添加到System32
文件夹,然后在键入时命令行将运行pythonpython
python.bat
@C:\Python27\python.exe %*
资源:
https://github.com/KartikTalwar/dotfiles/blob/master/bat/python.bat
您可以使用命令从当前cmd窗口设置路径PATH =
。那只会为当前的cmd实例添加它。如果要永久添加,则应将其添加到系统变量。(计算机>高级系统设置>环境变量)
您将转到您的cmd实例,然后放入PATH=C:/Python27/;%PATH%
。
echo %PATH~%
。
Python带有一个小型工具,可以执行此操作。从命令行运行:
c:\python27\tools\scripts\win_add2path.py
确保关闭命令窗口(使用exit
或关闭按钮),然后再次打开它。
以下程序将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)
我知道这篇文章很旧,但我想补充一点,该解决方案假设使用admin privs。如果您没有这些,可以:
转到控制面板,键入路径(此为Windows 7,现在在搜索框中),然后单击“为您的帐户编辑环境变量”。现在,您将看到环境变量对话框,其顶部为“用户变量”,而其下方为“系统变量”。
您可以作为用户单击顶部的“新建”按钮并添加:
变量名称:PATH
变量值:C:\ Python27
(任何地方都没有空格),然后单击“确定”。重新启动命令提示符后,User变量中的所有PATH都将附加到系统路径的末尾。它不会以任何其他方式替换PATH。
如果要设置特定的完整路径,最好创建一个像这样的批处理文件:
@echo off
PATH C:\User\Me\Programs\mingw\bin;C:\User\Me\Programs;C:\Windows\system32
title Compiler Environment - %Username%@%Computername%
cmd
将其命名为“ compiler.bat”或双击以启动它。或链接到它。或固定等等...
您需要在系统变量中进行更改
-右键单击“我的电脑”
-单击“属性”
-单击侧面板中的“高级系统设置”
-单击环境变量-您将分为两部分变量和系统变量
-在系统变量部分下搜索变量'Path'单击编辑并添加
"C:\Python27;"
(不带引号)将其保存
-现在打开命令行类型'path' 并按Enter,您将看到路径变量已被修改
-现在输入python --version
您将看到python版本
完成了
使用Windows环境变量始终是一种可怕的经历。最近,我发现了一个令人称奇的工具,称为Rapid Environment Editor,它提供了非常简单的GUI来管理它们。
如果您使用Chocolatey,则可以使用安装它choco install rapidee
。否则,请访问http://www.rapidee.com/cn/download
重新阅读此内容,听起来像是有偿的,但是我发誓我不是!一段时间以来,它一直是我工具箱中最有用的实用程序之一,但令我惊讶的是似乎没人知道它。
这个问题已经很老了,但是我遇到了一个类似的问题,这里没有列出我的特定解决方案:
确保您的PATH中没有不存在的文件夹。
就我而言,我有一堆默认文件夹(Windows,Powershell,Sql Server等),然后是C:\bin
我通常使用的自定义,然后进行了其他各种调整,例如c:\python17
等等。事实证明,cmd处理器发现c:\bin
没有不存在,然后停止处理其余变量。
另外,我不知道如果没有PATH manager,我是否会注意到这一点。它很好地强调了该项目无效的事实。
如果您对设置python的路径感到沮丧,只需下载新版本的python并卸载旧版本的python,并在安装新版本时询问是否设置路径标记并安装
这是最好的方法