导入代码以测试相同级别的目录

问题描述 投票:-1回答:1

这是一个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

而这似乎可以解决问题。

What I learned

哪里有init.py文件夹就是模块的名称。

python python-import
1个回答
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

然后你的导入将工作。

© www.soinside.com 2019 - 2024. All rights reserved.