首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用venv导入我自己的当前包?

如何使用venv导入我自己的当前包?
EN

Stack Overflow用户
提问于 2022-05-16 06:38:25
回答 1查看 49关注 0票数 0

这个问题可能有点令人困惑,但我目前正在开发一个开源python包。文件夹结构如下所示:

代码语言:javascript
复制
my_package:
  |- __init__.py
  |- file.py
  |- example.py

每个文件分别看起来如下:

代码语言:javascript
复制
# __init__.py
from my_package.file import test
代码语言:javascript
复制
# file.py
def test():
  print('Hello world')
代码语言:javascript
复制
# example.py
from my_package.file import test

test()

一旦我使用source venv/bin/activate并尝试用python my_package/example.py执行我的示例,就会得到以下错误:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
# example.py
from .file import test

test()

我得到的结果是:

代码语言:javascript
复制
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

  • Kernel: 5.17.6-1-MANJARO

  • python版本: 3.10.4

  • pip版本: 21.0

使用venv:

  • pip版本22.0.4
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-16 06:44:44

你需要安装这个软件包。在项目的根目录下应该有一个setup.py文件夹。转到终端中的目录,然后运行

代码语言:javascript
复制
python -m pip install --editable .

这将在虚拟env中安装该包(以及任何依赖项)。

通过指定--editable,它还将随时更新源代码,允许您在每次更改代码后在本地开发,而无需重新安装它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72254996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档