【问题标题】:Local package installed using pip can't be imported although it is shown in pip list使用 pip 安装的本地包无法导入,虽然它显示在 pip 列表中
【发布时间】:2023-03-13 04:45:01
【问题描述】:

我在从我之前使用 pip 安装的文件系统中导入两个本地(自行编写)包时遇到问题。 我正在使用一个 virtualenv,我也验证它已被激活,即 pythonpip 指向 virtualenv。 这两个不同的包被组织在一个仓库中,如下所示:

├── .venv
│   └── ...
├── folder_a
│   ├── package_a
│   │   ├── __init__.py
│   │   ├── a.py
│   │   └── subpackage_same_name
│   │       └── ...
│   ├── pyproject.toml
│   ├── requirements.txt
│   └── setup.cfg
├── folder_b
│   ├── package_b
│   │   ├── __init__.py
│   │   ├── subpackage_b_exclusive
│   │   │   └── ...
│   │   ├── b.py
│   │   └── subpackage_same_name
│   │       └── ...
│   ├── pyproject.toml
│   ├── requirements.txt
│   ├── setup.cfg
│   └── tests
│       └── ...

我使用以下命令从上述树的根目录安装两个包(激活 virtualenv):

pip install ./folder_apip install ./folder_b.

安装成功,包显示在pip list。 但是,当我尝试在a.py 中导入package_a 时,我得到一个ModuleNotFoundError: No module named 'package_a'

我无法在这里找出问题所在,是 virtualenv 相对于包定义的位置(注意树中的 .venv)吗? 我在监督什么吗? 任何帮助表示赞赏!

【问题讨论】:

标签: python pip package modulenotfounderror


【解决方案1】:

sys.path 变量告诉您​​ Python 在哪里查找导入。在执行 import 语句之前检查它,您将看到您的模块是否在显示的文件夹之一中,或者您是否需要在模块名称之前添加额外的点分隔路径元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    相关资源
    最近更新 更多