如何从python 3.6中的文件导入方法

时间:2019-04-22 06:02:12

标签: python python-3.x

我有一个文件位于src / math2 / add.py

add.py

def add(a, b):
    return a + b

现在我有第二个文件要使用,即operations.py

operations.py

import add

def operations(what, param1, param2):
    if(what == 'add'):
        return add(param1, param2)

if __name__ == '__main__':
    operation('add', 9, 18)

但是当我尝试跑步时 python3 operation.py

我收到错误,没有添加这样的模块。 我仍然在数学文件夹下添加了 init .py文件。

所以,这是我的文件夹结构

src/math2/add.py
src/math2/__init__.py
src/operations.py

有人可以在这里帮助我吗?我记得这曾经在python2.7上很好用

3 个答案:

答案 0 :(得分:2)

我想指出的是,在python环境中已经有一个名为math的库。将目录名称更改为让我们说math2后,可以尝试以下操作:

要添加模块,您应该使用from math2 import add,它应该可以工作。

您可以参考python docs on modules以获得更多信息。

编辑:您正在引用add模块,就好像它是operations.py中的函数一样。您应该做from math2.add import add或致电上一个表格的add.add()

答案 1 :(得分:1)

您在最后一行的operations.py中拼写了错误的方法名称。 应该是 operations('add',9,18)

下面是经过修改的operation.py,效果很好。

from math2.add import add

def operations(what, param1, param2):
    if(what == 'add'):
        a= add(param1, param2)
        print(a)

if __name__ == '__main__':
    operations('add', 9, 18)

答案 2 :(得分:0)

您应将PYTHONPATH设置为您的src文件夹

export PYTHONPATH=$PYTHONPATH:/<src-path>

然后,使用此导入:

from math.add import add