我有一个python文件,我想在多个地方调用一个函数。但我希望带有该函数的文件位于主目录中,而不必将其存储在我想要使用它的每个目录中。这可能吗?
例如,假设我有一个名为add.py的py文件,它位于主目录及其中
def add(b):
a = 3
print "ADDING %d + %d" % (a, b)
return a + b
然后在一个子目录中我想调用add,我怎么能这样做,我知道是否在同一个目录中我能做from a import add
但在我的情况下,add函数更复杂,我想在一堆不同的地方调用它,而不必在每个目录中存储多个文件。 我知道我可以使用 init .py,但该领域的内容是什么?
由于
答案 0 :(得分:1)
您可以将主目录添加到PYTHONPATH
,然后就可以from a import add
。
要以编程方式将目录添加到PYTHONPATH
,您可以使用sys.path
。
示例 -
import sys
sys.path.append('/path/to/home/directory')
完成上述操作后,您可以直接导入主目录中存在的任何脚本。例如,如果在主目录中有一个带有添加功能的a.py
,则可以在上面的行之后进行 -
from a import add
在python之外,您还可以设置PYTHONPATH
环境变量以包含您的主目录,然后您就可以直接从任何地方导入主目录中的任何python脚本 -
在bash中设置PYTHONPATH的示例 -
export PYTHONPATH=$PYTHONPATH;/path/to/home/directory