在Python中将文件路径永久添加到sys.path


97

我有一个名为的文件example_file.py,我想从其他文件中使用它,因此我决定将其添加example_file.pysys.path另一个文件中并将其导入另一个文件中以使用该文件。为此,我在IPython中运行了以下内容。

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

我可以看到我刚刚添加的路径,并且当我尝试从另一个目录路径中导入该文件时,如下所示:

import example_file

它工作正常,但是一旦我退出IPython,再次输入它,并检查了sys.path,我发现添加的路径不存在,那么如何在Python中永久地向sys.path添加路径?


3
使您的代码成为适当的程序包,使其易于安装,并在您的余生中开心(而不是动手)。除此之外:每个文档都清楚地告诉您sys.path.append()接受包含文件的目录,而不是文件的单一路径。
Andreas Jung'9



不要将系统路径与混淆PYTHONPATH
Burhan Khalid 2012年

Answers:


95

有几种方法。其中一个最简单的就是创建一个my-paths.pth文件(如描述在这里)。这只是具有.pth您在系统site-packages目录中放入的扩展名的文件。在文件的每一行上都放置一个目录名,因此您可以在其中放置一行/path/to/the/,它将目录添加到路径中。

您还可以使用PYTHONPATH环境变量,该变量类似于系统PATH变量,但包含将添加到的目录sys.path。请参阅文档

请注意,无论您做什么,都sys.path包含目录而不是文件。您不能“将文件添加到sys.path”。您始终添加其目录,然后可以导入文件。


1
好的,谢谢,我已经添加了我的目录,其中包括文件及其从其他位置导入文件时的工作状态,但当我从ipython中出来并再次进入检查我的路径时,这个问题却没有出现,我不想每次输入代码时都这样做,我想永久地将目录路径添加到sys.path中,该怎么做
Shiva Krishna Bavandla 2012年

@Kouripm:您的评论表明您实际上并未遵循我的建议,也未遵循上面重复的帖子中的建议。
BrenBarn 2012年

1
site包装是完美的。
Zeinab Abbasimazar

8
修复了我的问题,sys.path.append('C:\\python34\\lib\\site-packages')谢谢!
tylerlindell

为了后代:该.pth文件是站点模块文档称为的文件path configuration file。有关路径配置文件的注意事项:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
Minh Tran,

1

这种方式为我工作:

添加您喜欢的路径:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

检查:您可以运行'export'cmd并检查输出,也可以使用以下cmd进行检查:

python -c "import sys; print(sys.path)"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.