【问题标题】:Adding Python to PATH on Windows在 Windows 上将 Python 添加到 PATH
【发布时间】:2011-09-13 04:10:03
【问题描述】:

我一直在尝试将 Python 路径添加到 Windows 上的命令行,但无论我尝试哪种方法,似乎都没有任何效果。我使用了set 命令,我尝试通过编辑环境变量提示等添加它。

此外,如果我在命令行上运行 set 命令,它会列出这个。

python = c:\python27

但它仍然无法识别 Python 命令。

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

为了进一步澄清,我已在编辑环境提示中将 Python 可执行文件的路径附加到 PATH 中。好像没用。

【问题讨论】:

  • 可执行文件是否位于该目录中?里面不是有bin目录吗?
  • @anirudh4444 不,它在那个目录中……
  • 您可以从这里获得GUICommand Line 选项stackoverflow.com/a/38141751/5409601
  • 虽然对您无效,但使用 Python 3.6 Windows Installer(可能还有更早的版本),您可以选择“自定义”您的安装,并且有一个复选框可以将 Python 添加到您的路径中。

标签: python windows python-2.7 path


【解决方案1】:

您可以使用PATH = 命令从当前cmd 窗口 设置路径。那只会为当前的 cmd 实例添加它。如果要永久添加它,则应将其添加到系统变量中。 (计算机 > 高级系统设置 > 环境变量)

您将转到您的 cmd 实例,然后输入 PATH=C:/Python27/;%PATH%

【讨论】:

  • 这个解决方案在 Win7 Pro 上对我有用。使用echo %PATH~% 测试。
【解决方案2】:
  1. 按住 Win 并按 Pause
  2. 点击高级系统设置。
  3. 点击环境变量。
  4. ;C:\python27 附加到Path 变量。
  5. 重新启动命令提示符。

【讨论】:

  • 是的,我已经这样做了。抱歉,如果我没有在原始问题中说得更清楚
  • 确保您的 python 和路径变量中没有任何空格。
  • @rogerklutz:只需确保将“;C:\python27”添加到已经存在的 PATH 变量中,而不是创建一个以“C:\python27”为值的新变量。
  • 在许多情况下,您还必须在设置 Path 变量后注销并重新登录。
  • 遇到了类似的问题,除了第 5 步外,其他所有操作都已完成...感谢您提供。
【解决方案3】:

这个问题我已经有很长时间了。我以我能想到的各种方式将它添加到我的路径中,但这是最终对我有用的方法:

  1. 右键单击“我的电脑”
  2. 点击“属性”
  3. 点击侧面板中的“高级系统设置”
  4. 点击“环境变量”
  5. 点击系统变量下方的“新建”
  6. 在名称中输入pythonexe(或任何你想要的)
  7. 在值中输入您的 python 的路径(例如:C:\Python32\
  8. 现在编辑 Path 变量(在系统部分)并将%pythonexe%; 添加到已经存在的末尾

IDK 为什么这行得通,但它对我有用。

然后尝试在命令行中输入“python”,它应该可以工作!


编辑:

最近我一直在使用this program,它似乎工作得很好。还有this one,看起来也不错,虽然我没试过。

【讨论】:

    【解决方案4】:

    确保您没有在新目录之前添加空格。

    好: 旧的;旧的;旧的;新的

    不好: 旧的;旧的;旧的;新的

    【讨论】:

      【解决方案5】:

      在 Windows 中设置环境变量时,我在很多很多情况下都出错了。 我想我应该在这里分享我过去的一些错误,希望它可以帮助某人。 (这些适用于所有环境变量,而不仅仅是在设置 Python 路径时)

      注意这些可能的错误:

      1. 终止并重新打开您的 shell 窗口:一旦您更改了 ENVIRONMENTAL 变量,您必须重新启动您正在测试它的窗口。
      2. NO SPACES 设置变量时。确保您添加的 ;C:\Python27 没有任何空格。 (通常尝试C:\SomeOther; C:\Python27 分号后面的空格(␣)不行。)
      3. 在拼写完整路径时使用反斜杠。当您尝试 echo $PATH 时,您会看到正斜杠,但只有反斜杠对我有用。
      4. 不要添加最后的反斜杠。只有C:\Python27 不是C:\Python27\

      希望这对某人有所帮助。

      【讨论】:

      • 我选择这个答案的原因是大多数时候 PATH 会因为这四件事之一而被破坏。简单的部分是正确的,困难的部分是注意到你做错了!
      • 命令 echo $path 仅当您在 windows 下运行 bash shell(例如 MinGW)时才有效。 windows命令提示符命令为echo %path%
      • 我没有发现尾随的反弹有问题。我错过了什么吗?
      【解决方案6】:

      我知道这篇文章很旧,但我想补充一点,解决方案假定为管理员权限。如果你没有这些,你可以:

      转到控制面板,输入路径(现在是 Windows 7,所以它位于搜索框中),然后单击“为您的帐户编辑环境变量”。您现在将看到顶部为“用户变量”和下方为“系统变量”的环境变量对话框。

      作为用户,您可以单击顶部的“新建”按钮并添加:

      变量名:PATH
      变量值:C:\Python27

      (任何地方都没有空格),然后单击“确定”。重新启动命令提示符后,用户变量中的任何 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”或其他名称,然后双击启动它。或者链接到它。或者别针等等……

      【讨论】:

        【解决方案7】:

        尝试将此python.bat 文件添加到System32 文件夹,当您输入python 时,命令行现在将运行python

        python.bat

        @C:\Python27\python.exe %*
        

        来源:

        https://github.com/KartikTalwar/dotfiles/blob/master/bat/python.bat

        【讨论】:

          【解决方案8】:

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

          setx 路径“%path%;C:\Python27;”

          记得以分号结尾,不要包含斜杠。

          【讨论】:

          • +1- 这使您无需管理员权限即可添加到路径。但是,我不确定是否需要 %path%。在我的 Windows 7 系统上,新的 cmd 窗口现在有两个先前路径的副本。
          • %path% 是你的旧路径变量值,它在那里所以 "C:\Python27;"将附加到您现有的路径中。
          【解决方案9】:

          您需要更改系统变量
          -- 右击“我的电脑”
          -- 点击“属性”
          -- 单击侧面板中的“高级系统设置”
          -- 点击环境变量 -- 您将分为用户变量和系统变量两部分
          -- 在系统变量部分搜索变量“路径”点击编辑并添加
          "C:\Python27;"(不带引号)保存
          -- 现在打开命令行类型'path'回车你会看到路径变量已经被修改
          -- 现在输入python --version你会看到python版本

          完成了

          【讨论】:

            【解决方案10】:

            以下程序会将 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)
            

            【讨论】:

            【解决方案11】:

            这个问题很老了,但我刚刚遇到了一个类似的问题,我的具体解决方案没有在这里列出:

            确保您的 PATH 中没有不存在的文件夹。

            就我而言,我有一堆默认文件夹(Windows、Powershell、Sql Server 等),然后是我通常使用的自定义 C:\bin,然后是 c:\python17 等各种其他调整。发现 cmd 处理器发现 c:\bin 不存在,然后停止处理变量的其余部分。

            另外,如果没有PATH manager,我不会注意到这一点。它很好地突出了该项目无效的事实。

            【讨论】:

              【解决方案12】:

              对于任何尝试使用 Python 3.3+ 实现此目的的人,Windows 安装程序现在包含一个选项,可将 python.exe 添加到系统搜索路径。在the docs 中阅读更多内容。

              【讨论】:

              • 这是我使用的,因为我无法找到安装的确切路径。启动安装程序,点击“修改”,然后在可选功能上,点击下一步,然后选中复选框以将 Python 添加到系统路径并点击完成。
              【解决方案13】:

              我刚刚在 Windows 7 上使用“将 python 添加到 PATH”选项安装了 Python 3.3。

              在 PATH 变量中,安装程序自动添加了 final 反斜杠C:\Python33\ 所以它在命令提示符下不起作用(我尝试关闭/打开提示符几次)

              我删除了最后的反斜杠,然后它起作用了:C:\Python33

              感谢 Ram Narasimhan 的提示 #4!

              【讨论】:

                【解决方案14】:

                Python 带有small utility that does just this。从命令行运行:

                c:\python27\tools\scripts\win_add2path.py
                

                确保关闭命令窗口(使用exit 或关闭按钮)并再次打开它。

                【讨论】:

                • 对我来说,它确实会更改寄存器,但在您通过 std GUI 对话框手动确认更改之前,不会影响任何应用程序。重新启动应用程序没有帮助。看起来还需要一种广播。
                • 这在 8.1 上对我有用,并且似乎比其他方法更容易。一个窗口/框打开并询问您要运行什么。选择其他,然后导航回 c:\python27 并选择 python 可执行文件 (.exe)。该效果似乎是永久性的,因此您只需执行一次。您需要为每个用户运行 win_add2path.py,但在第一次之后您没有得到该框。
                【解决方案15】:

                如果 Python 是与其他程序一起安装的,例如我的 ArcGIS 10.1,那么您还必须在环境变量中包含指向 python.exe 路径的任何额外文件夹。

                所以我的环境变量看起来像这样:

                系统变量>路径>添加;C:\Python27\ArcGIS10.1

                【讨论】:

                  【解决方案16】:

                  我在Win7 64位下使用cmd组织了我的python环境变量。

                  我通过windows的环境变量菜单设置变量PYTHONPATH,并将%PYTHONPATH%添加到PATH变量中:

                  ...;%PYTHONPATH%

                  cmd shell 将变量正确扩展为:

                  C:\>echo %PYTHONPATH%
                  C:\python27;c:\python27\lib;C:\python27\scripts
                  

                  更改 PATH 后不要忘记重新启动 cmd shell。

                  【讨论】:

                    【解决方案17】:

                    使用 Windows 环境变量总是一种可怕的体验。最近,我发现了一个很棒的工具,叫做 Rapid Environment Editor,它提供了一个非常简单的 GUI 来管理它们。

                    如果您使用巧克力,您可以使用choco install rapidee 安装它。否则,看看http://www.rapidee.com/en/download

                    重读这篇文章,这听起来像是一个有偿的骗局,但我发誓我不是!一段时间以来,它一直是我工具包中最有用的实用程序之一,我很惊讶似乎没有人知道它。

                    【讨论】:

                      【解决方案18】:

                      在你的命令提示符上写下:

                      set Path=%path%
                      

                      将 %path% 替换为 Python 文件夹示例的路径:

                      set Path=C:/Python27
                      

                      【讨论】:

                        【解决方案19】:

                        如果你对设置python的路径感到沮丧,只需下载新版本的python卸载旧版本的python,在安装新版本时它会询问是否设置路径标记并安装

                        这是最好的方法

                        【讨论】:

                          【解决方案20】:

                          对于在控制台中编写 python 时获得 windows 商店窗口的人,您所要做的就是转到 configuration -> Manage app execution aliases 并禁用显示 python 的切换。

                          然后,将以下文件夹添加到 PATH。

                          C:\Users\alber\AppData\Local\Programs\Python\Python39\
                          
                          C:\Users\alber\AppData\Local\Programs\Python\Python39\Scripts\
                          

                          【讨论】:

                            【解决方案21】:

                            如果你在 Windows 上,运行这个:

                            C:\Users\username> cd C:\bin
                            C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
                            

                            确保您已按照此处所述安装了 ppuunit:https://phpunit.de/manual/6.5/en/installation.html

                            然后:

                            phpunit path-to-your-test
                            

                            【讨论】:

                              【解决方案22】:

                              对于anaconda3 安装,要添加的路径是:

                              %USERPROFILE%\anaconda3\
                              %USERPROFILE%\anaconda3\Scripts\
                              %USERPROFILE%\anaconda3\Library\bin\
                              

                              【讨论】:

                                猜你喜欢
                                • 2018-12-24
                                • 2012-01-23
                                • 1970-01-01
                                • 2015-01-12
                                • 1970-01-01
                                • 2019-05-06
                                • 2014-07-14
                                • 2017-03-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多