这是一个nodejs和python项目,因此目录结构是这样。
这是我的目录结构:
top_level/
scripts/
__init__.py
python_script.py
some_nodejs_files.js
tests/
__init__.py
test_python_script.py
我可以将所有单元测试代码放在scripts
目录的内部,但是我想将测试代码放在与scripts
相同级别的测试目录中。如何从python_scripts.py
导入test_python_script.py
我从tests/test_python_script.py
开始尝试做from ..scripts import python_script
,但得到ValueError: attempted relative import beyond top-level package
。
编辑:在阅读了注释中的某些链接并尝试了一些添加的内容之后
import sys
sys.path.append("..")
from scripts import python_script
这似乎可以解决问题。
只要有 init .py,该文件夹就是模块的名称。
答案 0 :(得分:0)
您有两种选择:
# add scripts to the python path
from os.path import abspath, dirname, join
import sys
sys.path.append(join(dirname(abspath(__file__)), 'scripts'))
然后您的导入将起作用。
或者利用以下事实:当前目录已经是路径的一部分,而只需使用符号链接:
# bash
cd tests
ln -s ../scripts/python_script.py
然后您的导入将起作用。