gpt4 book ai didi

python - 无法从父包 python 导入子项

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:55 24 4
gpt4 key购买 nike

我目前正在用 python 编写一个需要单元测试的 Web 应用程序,但是每当我尝试导入另一个父目录中的子模块时,我都会收到以下错误:

$ python my_package/tests/main.py
Traceback (most recent call last):
File "my_package/tests/test.py", line 1, in <module>
from my_package.core.main import hello
ImportError: No module named my_package.core.main

文件:my_package/core/main.py
hello = "Hello"

文件:my_package/test/test.py
from my_package.core.main import hello

print(hello, "world!")

我的目录结构:

$ tree
.
└── my_package
├── __init__.py
├── core
│   ├── __init__.py
│   └── main.py
└── tests
├── __init__.py
└── test.py

有人可以解释一下我做错了什么吗?感谢您的宝贵时间。

最佳答案

considered an anti-pattern 修改 sys.path。如果你希望你的包对所有子包都可用,最好使用setup.py开发模式。在项目的根目录中创建 setup.py:

from setuptools import setup

setup(
name="you_project",
version="0.0.0",
packages=['my_package', ],
install_requires=['requirement1', 'requirement2'],
)

然后运行:

$python setup.py 开发

在此之后,您将能够从 Python 环境中的任何地方导入 my_packege

关于python - 无法从父包 python 导入子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995363/

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