【问题标题】:Python not finding module even after installing with pip即使在使用 pip 安装后 Python 也找不到模块
【发布时间】:2023-12-04 18:49:01
【问题描述】:

我在 Ubuntu 18.04.3 上使用 python 3.6.8。 我有一个文件夹设置如下:

.
└── my_package
    ├── independent_modules1
    ├── independent_modules2
    ├── setup.py
    └── src
        ├── sub_package1
        ├── module1
        └── module2

my_package 是一个 git 存储库,这就是为什么要放置 Independent_modules 的原因。

/src 是“my_package”的所有模块所在的位置。

setup.py 有以下内容:

from setuptools import setup, find_packages

setup(
      name="my_package",
      version="1.0",
      package_dir={'': 'src'},
      packages=find_packages(where='src')
) 

我创建了一个名为 my_env 的虚拟环境,用于项目。

在虚拟环境中,并且已经安装了所有需要的包,我尝试通过执行以下操作来安装我自己的包:

 (my_env) my_user: ~/folder/my_package$ pip3 install -e .

pip 表示包安装成功,如果我运行 pip3 list,它会列出 my_package。

但是如果我运行 python3 并尝试导入 my_package 我得到 ModuleNotFoundError: No module named 'my_package'。

似乎是什么问题?

我之前尝试过这个,但是没有设置 src 文件夹(my_package 的模块都在 my_package 下,与 setup.py 一起)并且它成功了。

【问题讨论】:

  • 你是通过终端安装的吗?如果是这样,请检查您使用哪个 Python 安装它。如果我没记错的话,Ubuntu 默认自带 Python2.7。安装 Python3 后,您可以rm Python2.7。我以前在其他模块上遇到过这个问题,这为我解决了这个问题
  • 安装脚本中name arg 下的内容是您的发行版名称,用于安装您的项目。它是不可导入的。可导入的是packages 列表的内容。在您的示例中,my_package 用于 install 项目,例如通过pip install my_package,而您应该能够导入 sub_package1module1module2 等。
  • @hoefling 将您的评论作为答案,我能够在您的帮助下解决。我将sub_package1module1module2 放在my_package 文件夹下src 并解决了问题。

标签: python python-3.x pip setuptools


【解决方案1】:

尝试重新启动机器。它对我有用。

【讨论】: