从__init__.py中的其他py文件调用python函数

时间:2015-07-04 03:10:45

标签: python django server backend

我有一个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,但该领域的内容是什么?

由于

1 个答案:

答案 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