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

问题描述 投票:2回答:3

我有一个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 operations.py时

我收到错误没有这样的模块添加。我在math文件夹下添加了init.py文件仍然出现此错误。

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

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

任何人都可以帮助我。我记得这曾经与python2.7一起工作

python python-3.x
3个回答
2
投票

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

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

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

编辑:您正在引用add模块,就好像它是operations.py中的函数一样。你应该做from math2.add import add,或者你应该在之前的表格中打电话给add.add()


1
投票

你在最后一行的operations.py中有拼写错误的方法名称。它应该是操作('添加',9,18)

下面是修改后的operations.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)


0
投票

你应该将PYTHONPATH设置为你的src文件夹

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

然后,使用此导入:

from math.add import add
© www.soinside.com 2019 - 2024. All rights reserved.