SOS!
我创建了一个函数,并尝试将其导入另一个python脚本中以进行一些单元测试。但是,我不断收到“ ModuleNotFoundError”。如何将函数从一个脚本正确导入到另一个脚本。
现有:
from src.somefile import some_function
def test_somefunction:
assert somefunction()
错误
Traceback (most recent call last):
File "test/test_file.py", line 2, in <module>
from src.somefile import convert_epoch
ModuleNotFoundError: No module named 'src'
文件夹结构
project/
project/__init__.py
project/src
project/src/__init__.py
project/src/somefile.py
project/test
project/test/__init__.py
project/test/test_file.py
赞赏有人可以突出我做错了什么以及如何整齐地导入。谢谢!
答案 0 :(得分:2)
如果要导入类似的模块,则必须将包含模块的目录添加到PYTHONPATH
环境变量中,或者可以使用sys.path
:
import sys
# assumed that /home/you/work contains `project` dir
sys.path.append('/home/you/work')
# now you can import
您也可以使用相对导入(import ..package
),但是它们有一些限制(可以提高到某个点),通常来说是一种不好的做法。看一下这篇文章,它详细描述了python的import
语句:https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html
答案 1 :(得分:1)
希望这会为您工作,假设您正在运行这样的脚本
python test/test_file.py
import sys
sys.path.append("..") # Adds higher directory to python modules path.
from src.somefile import some_function
def test_somefunction:
assert somefunction()