无法从另一个python文件(在另一个目录中)调用函数
在ubuntu上,我使用以下结构:无法从另一个python文件(在另一个目录中)调用函数,python,python-3.x,python-import,Python,Python 3.x,Python Import,在ubuntu上,我使用以下结构: . ├── src │ ├── __init__.py │ └── main.py └── test ├── __init__.py └── test.py main.py包含以下功能: def-fun(x,y): 返回x+y 而且test.py 从src.main导入 印刷(趣味(2,3)) 我在目录daddy中工作。所以pwd打印daddy 当我尝试调用test.py时 $ python3 test/test.py Trac
.
├── src
│ ├── __init__.py
│ └── main.py
└── test
├── __init__.py
└── test.py
main.py
包含以下功能:
def-fun(x,y):
返回x+y
而且test.py
从src.main导入
印刷(趣味(2,3))
我在目录daddy
中工作。所以pwd
打印daddy
当我尝试调用test.py
时
$ python3 test/test.py
Traceback (most recent call last):
File "test/test.py", line 1, in <module>
from src.main import fun
ModuleNotFoundError: No module named 'src'
$python3测试/test.py
回溯(最近一次呼叫最后一次):
文件“test/test.py”,第1行,在
从src.main导入
ModuleNotFoundError:没有名为“src”的模块
我有什么选择,才能做到这一点?
我已经看过了与此相关的其他答案,但它们对我不起作用。。。主要是因为它们不像我的情况那样处理工作目录。请参阅通常运行的模块所在的文件夹将添加到
PYTHONPATH
。因此,最好有一个结构合理的项目和一个发现测试的测试运行者。您使用哪种测试框架?我正在使用unittest
,我使用python-W ignore-m unittest discover-v
自动检测所有测试,但这是一个小到可以忽略编写所有测试的项目。我正在努力寻找不需要每次都编写测试的替代方案。