从 github 安装 Python 包到虚拟环境中可以,但导入失败
installing Python package from github into virtual environment works but import fails
- 我创建了一个名为 PythonApplication
的 python 项目
- 我创建了一个虚拟环境 env (Python 3.6 (64-bit))
- 我在虚拟环境目录运行下面
pip install git+git://github.com/BillMills/python-package-example.git
我得到:
查看
处的目录结构
..\PythonApplication\PythonApplication\env\Lib\site-packages\myPackage
我明白了
和
- 然后我在里面添加下面的代码 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
- 我创建了一个名为 PythonApplication 的 python 项目
- 我创建了一个虚拟环境 env (Python 3.6 (64-bit))
- 我在虚拟环境目录运行下面
pip install git+git://github.com/BillMills/python-package-example.git
我得到:
查看
处的目录结构..\PythonApplication\PythonApplication\env\Lib\site-packages\myPackage
我明白了
和
- 然后我在里面添加下面的代码 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