【问题标题】:Cannot import installed module inside a Python virtualenv无法在 Python virtualenv 中导入已安装的模块
【发布时间】:2018-09-12 12:15:41
【问题描述】:

我已经在带有setup.py 的目录中使用pip install . 安装了我自己的python 包mypackage。似乎已安装该软件包,但是当我尝试导入它时,我得到了 ModuleNotFoundError

查看以下终端会话:

(venv-docker) root@71f904d6e6ed:/../scripts# pip list | grep mypackage
mypackage (0.0.3)
(venv-docker) root@71f904d6e6ed:/../scripts# which pip
/../venv-docker/bin/pip
(venv-docker) root@71f904d6e6ed:/../scripts# which python
/../venv-docker/bin/python
(venv-docker) root@71f904d6e6ed:/../scripts# python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mypackage
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'mypackage'

这怎么会发生?

我该如何解决这个问题?

提前致谢!

【问题讨论】:

  • 安装的包是一个发行版,它可能有几个模块要导入,它们的名称与包本身不同。可以包含包源的目录树吗?
  • 基本上安装的包是一个“mypackage.py”文件和一个“setup.py”文件。而已。此外,这种方法确实适用于我的另一台电脑,所以我知道原则上这种方法必须能够工作。
  • pip --version? pip show --files mypackage?

标签: python docker pip anaconda setup.py


【解决方案1】:

我认为 videoset 是 mypackage 中的一个模块

from <package_name>  import <module_name>

【讨论】:

  • 啊,不,将 videoset 更改为“mypackage”以使其通用。只是没有看到那条线。现在编辑答案以解决此问题。
猜你喜欢
  • 1970-01-01
  • 2018-04-23
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 2017-07-08
相关资源
最近更新 更多