如何在Windows中添加PYTHONPATH,以便找到我的模块/包?

467

我有一个目录,里面存放着我所有的Django应用程序(C:\My_Projects)。我想将这个目录添加到我的PYTHONPATH中,以便可以直接调用这些应用程序。

我尝试从Windows GUI(我的电脑 > 属性 > 高级系统设置 > 环境变量)将 C:\My_Projects\; 添加到我的Windows Path 变量中。但是它仍然无法读取coltrane模块,并生成以下错误:

错误:找不到名为coltrane的模块


针对“no module named”错误:https://dev59.com/3WAg5IYBdhLWcg3wlbxh#40883739 - JinSnow
1
我使用了site模块 - Zeinab Abbasimazar
如果您想在命令提示符中运行Python,这里的回答很好,希望能对您有所帮助。https://dev59.com/Q1YN5IYBdhLWcg3wXnNa#54618199 - Mahesh Jamdade
我想将此目录添加到我的PYTHONPATH中,这样我就可以直接调用应用程序了。我尝试将C:\My_Projects;添加到我的Windows路径变量中,但是当然不起作用:路径变量与PYTHONPATH变量不同。 - undefined
24个回答

481

你知道在Windows上对我真正有用的是什么吗?

我的电脑 > 属性 > 高级系统设置 > 环境变量 >

只需将路径添加为C:\Python27(或您安装Python的任何位置)

或者

然后在系统变量下,我创建了一个名为 PythonPath 的新变量。在这个变量中,我有C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C: \其他路径文件夹

输入图像描述

这是对我最有效的方法,我在提供的所有文档中都没有找到过。

编辑: 对于那些无法理解的人,请添加

C:\Python27;

一起添加。否则它将永远无法工作。


53
你可能需要将 C:\Python27 添加到你的路径中。 - Wei Yang
5
@SteveKoch 我不确定 - 你需要询问项目的维护者。我不再使用路径编辑器,因为我转而使用更好的Rapid Environment Editor - Piotr Dobrogost
5
将C:\Python27\Scripts添加到路径中非常重要,这样安装的脚本才能从Shell中运行。 - Tyler Brock
6
为什么要将C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk添加到PYTHONPATH中?这些已经配置好了。脚本目录应放在系统PATH中。库目录(未安装到site-packages或每个用户的site-packages)应该放在PYTHONPATH中。 - Eryk Sun
13
我必须将%PYTHONPATH%也包含在我的PATH中。 - gosr
显示剩余7条评论

137

Windows 7专业版 我对@mongoose_za的答案进行了修改,以便更轻松地更改Python版本:

  1. [右键单击]计算机>属性>高级系统设置>环境变量
  2. 在“系统变量”下单击[新建]
  3. 变量名:PY_HOME,变量值:C:\path\to\python\version 输入图像描述
  4. 单击[确定]
  5. 找到“Path”系统变量并单击[编辑]
  6. 将以下内容添加到现有变量中:

    %PY_HOME%;%PY_HOME%\Lib;%PY_HOME%\DLLs;%PY_HOME%\Lib\lib-tk; 输入图像描述

  7. 单击[确定]关闭所有窗口。

作为最终的检查,请打开命令提示符并输入python。您应该会看到

>python [whatever version you are using]

如果您需要在不同版本之间切换,只需修改PY_HOME变量以指向正确的目录即可。如果您需要安装多个Python版本,则这样做会更加容易管理。


4
尝试了这个方法,有效了...我建议遇到同样问题的人也试一试。 - Christopher M.
2
尝试了这个,它完全没有做任何事情。 - GreySage
我尝试了上面被接受的答案,但是它没有起作用,所以我建议使用这个。 - mjwrazor
“Variable Value:C:\path\to\python\version”这句话中的“Variable Value”是指包含python.exe文件的目录地址吗? - Reihan_amn
2
@Reihan_amn 我的意思是包含 lib、bin、libexec 等目录的包装目录。通常这些目录被命名为 Python[VERSION_NUMBER]/,但我也见过 python/[VERSION_NUMBER] 的情况。希望这能帮到你。 - Delicia Brummitt
5
我尝试了这个方法,对我有效。但我需要做一个小调整,就是在将这些条目添加到PATH变量时,需要为Windows 10中的每个条目单独点击“新建”。%PY_HOME%;%PY_HOME%\Lib;%PY_HOME%\DLLs;%PY_HOME%\Lib\lib-tk;我还需要添加%PY_HOME%\Scripts以便访问pip和我使用pip安装的模块,例如pylint。 - Jose' Vargas

123

从Windows命令行:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

要永久设置PYTHONPATH,将该行添加到autoexec.bat文件中即可。或者,如果您通过“系统属性”编辑系统变量,也会永久更改。


1
工作正常,但每次打开DOS时都需要设置路径。 - darren
8
我会尽力为您翻译。以下是您提供的内容的翻译:我倾向于使用“set path=%PATH%;%PYTHONPATH%;”。 意思是将当前目录添加到系统环境变量PATH和PYTHONPATH中。 - Mr Wednesday
9
编辑autoexec.bat文件?我们突然回到了90年代吗? - C Mars
10
在此之前,执行 echo %PYTHONPATH% 命令,如果返回一个路径则继续操作。否则,执行例如 set PYTHONPATH=.;C:\My_python_lib 命令。如果不这样做,Windows会将 %PYTHONPATH% 展开为空字符串,它会在 PYTHONPATH 中保留为 %PYTHONPATH%,导致所有东西都无法正常工作!听起来很疯狂,但这就是 Win7 命令行的工作方式... - ntg
2
要使其永久生效,请使用 setx 而不是 set - Amit Naidu
1
请注意,如果使用setx命令,语法会有所不同,根据@AmitNaidu的建议,我认为应该是setx PYTHONPATH %PYTHONPATH%;C:\My_python_libset PYTHONPATH .;C:\My_python_lib。请注意,您的路径不能包含空格(参考:https://dev59.com/ScHqa4cB1Zd3GeqP7co_#69246810)。 - philipnye

62

这些解决方案可行,但仅适用于您机器上的代码。我建议在您的代码中添加几行,如下所示:

import sys
if "C:\\My_Python_Lib" not in sys.path:
    sys.path.append("C:\\My_Python_Lib")

那应该能解决你的问题了


5
像这样修改 sys.path 是不被赞同的,原因很充分。有更好的配置 sys.path 的方法——PYTHONPATH 环境变量和 .pth 文件。 - Piotr Dobrogost

59
只需将您的安装路径(例如C:\Python27\)添加到系统变量中的PATH变量中。然后关闭并打开您的命令行窗口,输入python即可。

61
这是回答了一个完全不同于原帖所问的问题。 - wpercy
3
问题不在于DOS用于查找命令的“PATH”,而在于Python路径,即Python中的sys.path。在大多数操作系统中,Python只使用系统环境变量PYTHONPATH,但Windows似乎是“特殊”的。 - Michael Scheper

43

PythonPythonPath 添加到 Windows 环境变量中:

  1. 打开资源管理器。
  2. 在左侧的导航树面板中右键单击 '计算机'
  3. 在上下文菜单底部选择 '属性'
  4. 选择 '高级系统设置'
  5. 在高级选项卡中点击 '环境变量...'
  6. '系统变量' 下:

    1. 添加

      • PY_HOME

        C:\Python27
        
      • PYTHONPATH

        (Python路径)
      • %PY_HOME%\Lib;%PY_HOME%\DLLs;%PY_HOME%\Lib\lib-tk;C:\another-library
        
    2. 追加

      • path

    3. %PY_HOME%;%PY_HOME%\Scripts\
      

4
这是唯一对我有用的解决方案。对于那些没有管理员权限的人,只需按照上面“[yourUsername]的用户变量”下的步骤执行即可同样有效。 - Fares K. A.
Python在Windows上,现在更加欣赏node.js了。 - Eddie

23

实现这一目标最简单的方法是在第一次安装后再次运行Python安装程序,然后:

  1. 选择“修改”。
  2. 选中您需要的可选功能,然后单击下一步。
  3. 在"高级选项"步骤中,你会看到一个选项,称为"将Python添加到环境变量中"。只需勾选该选项,然后点击安装。 第三步 当安装完成后,Python 环境变量已添加,您可以在任何地方轻松使用 Python。

不建议通过环境变量设置全局变量,因为它可能被任何版本的Python使用,而不是您打算使用的那个版本。 - Miroslav Avramov
https://learn.microsoft.com/en-gb/windows/python/faqs - Miroslav Avramov
还有,我尝试了这个,但不起作用。仍然不在我的路径中。 - Dave

19
更简单的设置Python路径方式是: 点击“开始”>“我的电脑”>“属性”>“高级系统设置”>“环境变量”>第二个窗口> 选择“Path”>“编辑”>然后添加“;C:\Python27\;C:\Python27\Scripts\” 链接:http://docs.python-guide.org/en/latest/starting/install/win/

更改系统路径没有任何变化(即使删除它也是如此)。但在管理员命令提示符中输入以下内容可行:ftype Python.File="C:\Python27\python.exe" "%1" %* - JinSnow

15

您还可以添加一个 .pth 文件,其中包含所需目录,放置在您的 c:\PythonX.X 文件夹或 \site-packages 文件夹中。当我开发 Python 包时,通常会选择将其放置在 \site-packages 文件夹中。

更多信息请参见此处


15

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接