我有一个文件位于src / math2 / add.py
下def add(a, b):
return a + b
现在我有第二个文件要使用,即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上很好用
答案 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