Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从另一个python文件(在另一个目录中)调用函数_Python_Python 3.x_Python Import - Fatal编程技术网

无法从另一个python文件(在另一个目录中)调用函数

无法从另一个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

在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
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
自动检测所有测试,但这是一个小到可以忽略编写所有测试的项目。我正在努力寻找不需要每次都编写测试的替代方案。