gpt4 book ai didi

Python 从并行目录导入模块

转载 作者:太空狗 更新时间:2023-10-29 17:59:27 25 4
gpt4 key购买 nike

我将如何组织我的 python 导入,以便我可以拥有这样的目录。

project
| \
| __init__.py
|
src
| \
| __init__.py
| classes.py
|
test
\
__init__.py
tests.py

然后在/project/test/tests.py 中可以导入 classes.py

我在 tests.py 中有这样的代码

from .. src.classes import(
scheduler
db
)

我得到了

的错误
SystemError: Parent module '' not loaded, cannot perform relative import

有人知道该怎么办吗?

最佳答案

Python 将包含您启动的脚本的文件夹添加到 PYTHONPATH,因此如果您运行

python test/tests.py

只有文件夹 test 被添加到路径中(而不是您在其中执行命令的基本目录)。

而是像这样运行你的测试:

python -m test.tests

这会将基本目录添加到 python 路径,然后可以通过非相对导入访问类:

from src.classes import etc

如果你真的想使用相对导入风格,那么你的3个目录需要添加到一个包目录

package
* __init__.py
* project
* src
* test

然后你从包目录上面执行它

python -m package.test.tests

另见:

关于Python 从并行目录导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com