将目录添加到Python sys.path,以便每次使用Python时都包含该目录

时间:2011-09-19 14:22:31

标签: python windows sys.path

目前,在尝试引用某些库代码时,我在python文件的顶部执行此操作:

import sys
sys.path.append('''C:\code\my-library''')
from my-library import my-library

然后,只要会话处于活动状态,my-library将成为sys.path的一部分。如果我开始新文件,我必须记得再次包含sys.path.append

我觉得必须有更好的方法来做到这一点。如何在我的Windows机器上为每个python脚本提供my-library,而不必每次都使用sys.path.append

6 个答案:

答案 0 :(得分:14)

只需将此路径添加到PYTHONPATH环境变量中即可。要执行此操作,请转到“控制面板/系统/高级/环境”变量,然后在“用户变量”部分中,检查是否已有PYTHONPATH。如果是,请选择它并单击“编辑”,如果没有,请单击“新建”以添加它。

PYTHONPATH中的路径应以“;”分隔。

答案 1 :(得分:4)

如果这是您在整个代码中使用的库,则应该安装它。正确打包,并将其安装在site-packages目录中 - 或者,如果特定于某些项目,请使用virtualenv并在相关的virtualenvs中安装它。

答案 2 :(得分:3)

要做这样的事情,你必须使用sitecustomize.py(或usercustomize.py)文件来进行sys.path修改(source python docs)。

将sitecustomize.py文件创建到python安装的\ Lib \ site-packages目录中,每次启动python解释器时都会导入该文件。

答案 3 :(得分:0)

如果您以交互方式执行此操作,最好的办法是安装ipython并配置启动设置以包含该代码。如果您打算将它作为从解释器运行的脚本的一部分,则同样适用,因为它可以访问您的命名空间。

另一方面,独立脚本会自动包含该脚本。将来,您或其他维护人员会出现,并且所有代码都应该是显而易见的,而不依赖于特定的机器设置。最好的办法是为新项目设置一个框架文件,其中包含您需要的所有基本功能。这与经常使用的片段一起处理问题。

运行脚本的所有代码都将在脚本中,您不必每次都考虑添加该代码。

答案 4 :(得分:0)

  1. 您应该使用 os.path.join 使您的代码更可靠。
  2. 您已经在路径中使用了 my-library 。因此,不要在第二次导入时使用它。 如果您有这样的目录结构 C:\ code \ my-library \ lib.py 并在其中运行,例如
  print("Hello, world")

那么您生成的代码应该是

import sys 
sys.path.append(os.path.join('C:/', 'code', 'my-library')
from lib import main 

答案 5 :(得分:0)

在多个环境中使用 jupyter,添加到 .bashrc 的路径不起作用。我必须编辑该特定内核的 kernel.json 文件,并将其附加到 env 部分的 PYTHONPATH 中。

这只适用于那个内核,但也许这可以帮助其他人。