从同一级别目录导入测试代码

2024-04-26 01:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个nodejs和python项目,所以目录结构就是这样

这是我的目录结构:

top_level/
    scripts/
        __init__.py
        python_script.py
        some_nodejs_files.js
    tests/
        __init__.py
        test_python_script.py

我可以将所有单元测试代码放在scripts目录中,但我希望将测试代码放在与scripts相同级别的测试目录中。如何从test_python_script.py导入python_scripts.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,则该文件夹是模块的名称


Tags: 项目frompytestimport目录inittop
1条回答
网友
1楼 · 发布于 2024-04-26 01:10:52

你有几个选择:

# 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

那你的导入就行了

相关问题 更多 >