从 github 安装 Python 包到虚拟环境中可以,但导入失败

installing Python package from github into virtual environment works but import fails

  1. 我创建了一个名为 PythonApplication
  2. 的 python 项目
  3. 我创建了一个虚拟环境 env (Python 3.6 (64-bit))
  4. 我在虚拟环境目录运行下面

pip install git+git://github.com/BillMills/python-package-example.git

我得到:

查看

处的目录结构
..\PythonApplication\PythonApplication\env\Lib\site-packages\myPackage

我明白了

  1. 然后我在里面添加下面的代码 PythonApplication.py

import myPackage

foo = 6
bar = 7

当我 运行 时,出现以下错误:

ModuleNotFoundError: No module named 'somePython'

我错过了什么?

根据下面 Saurav 的评论,我重新执行了这些步骤。但是,在创建环境之后,我确实在命令提示符下激活了它,并且 运行 在激活的环境中使用 pip 命令而不是命令提示符。结果没有改变。

有人评论说 github.com/BillMills/python-package-example.git 写在 Python 2 中,在 Python 3 中不起作用。如果那个是正确的,需要更改什么?

您正在使用的软件包来自 https://github.com/BillMills/python-package-example is using an import style not supported in Python 3. You can see in python-package-example/__init__.py

import somePython

用于导入子模块,但 python 3 将假定 somePython 作为顶级模块存在。请参阅 PEP-328 以获得更好的解释。

可以在 https://github.com/kennethreitz/samplemod. Notice that in sample/__init__.py 找到 Python3 兼容的示例包使用相对导入(由前导“.”表示)导入子模块:

from .core import hmm 

如果您想修改 python-package-example 以使其兼容,您需要将其 __init__.py 更改为使用绝对导入:

import myPackage.somePython as somePython

或相对导入:

from . import somePython