这个问题可能有点令人困惑,但我目前正在开发一个开源python包。文件夹结构如下所示:
my_package:
|- __init__.py
|- file.py
|- example.py每个文件分别看起来如下:
# __init__.py
from my_package.file import test# file.py
def test():
print('Hello world')# example.py
from my_package.file import test
test()一旦我使用source venv/bin/activate并尝试用python my_package/example.py执行我的示例,就会得到以下错误:
Traceback (most recent call last):
File "~/Development/personal-projects/my_package/my_package/example.py", line 4, in <module>
from my_package.file import test
ModuleNotFoundError: No module named 'my_package'我做错了什么?谢谢你的建议。
更新
按照Abdul的建议,我用以下方法更改我的example.py文件:
# example.py
from .file import test
test()我得到的结果是:
Traceback (most recent call last):
File "~/Development/personal-projects/my_project/my_project/example.py", line 4, in <module>
from .file import test
ImportError: attempted relative import with no known parent package如果有帮助,这是我当前的系统数据:
Manjaro x86_64
使用venv:
发布于 2022-05-16 06:44:44
你需要安装这个软件包。在项目的根目录下应该有一个setup.py文件夹。转到终端中的目录,然后运行
python -m pip install --editable .这将在虚拟env中安装该包(以及任何依赖项)。
通过指定--editable,它还将随时更新源代码,允许您在每次更改代码后在本地开发,而无需重新安装它。
https://stackoverflow.com/questions/72254996
复制相似问题