虚拟环境 "no module named" 错误
Virtual Environment "no module named" error
我设置了一个虚拟环境运行 Python 3.5。我 运行 我的源命令和 运行 pip 来安装 beatbox:
(venv) Daniels-Air:bin danieldow$ pip list
beatbox (32.1)
pip (8.1.2)
requests (2.11.0)
setuptools (25.1.6)
six (1.10.0)
slack (0.0.2)
slackclient (1.0.1)
websocket-client (0.37.0)
wheel (0.29.0)
但是,当我尝试导入时,我得到:
(venv) Daniels-Air:bin danieldow$ python3
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import beatbox
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/danieldow/venv-python3/venv/lib/python3.5/site-packages/beatbox/__init__.py", line 1, in <module>
from _beatbox import _tPartnerNS, _tSObjectNS, _tSoapNS, SoapFaultError, SessionTimeoutError
ImportError: No module named '_beatbox'
在站点包中的 beatbox 目录中,-beatbox 模块在那里:
(venv) Daniels-Air:site-packages danieldow$ pwd
/Users/danieldow/venv-python3/venv/lib/python3.5/site-packages
(venv) Daniels-Air:site-packages danieldow$ cd beatbox
(venv) Daniels-Air:beatbox danieldow$ ls
__init__.py _beatbox.py python_client.py
__pycache__ marshall.py xmltramp.py
有人可以告诉我我做错了什么或我可以尝试什么吗?
谢谢!
段
*PS 在 Pycharm 中,在解释器下,它确实显示正在安装包。
问题是 beatbox 是为 Python 2.x 编写的。 'pip instal beatbox3' 成功了。
你已经解决了这个问题。但我会告诉你更多的事情。
在Python中,请运行这些代码:
import sys
print(sys.path)
这将打印环境变量。如果你发现这些环境变量是你的系统 Python 而不是你的 venv Python,那么原因必须是以下两个原因之一:
- 您已在
.zshrc
中写入别名,并将 python
指向系统的 python 路径。如果是这样,只需删除别名即可。
- 您的 python 在 venv 中的软链接已损坏。它找不到 python 二进制文件的正确位置。如果是这样,重建软链接或重新创建一个venv并使用参数:--copy
virutalenv venv --copy
我设置了一个虚拟环境运行 Python 3.5。我 运行 我的源命令和 运行 pip 来安装 beatbox:
(venv) Daniels-Air:bin danieldow$ pip list
beatbox (32.1)
pip (8.1.2)
requests (2.11.0)
setuptools (25.1.6)
six (1.10.0)
slack (0.0.2)
slackclient (1.0.1)
websocket-client (0.37.0)
wheel (0.29.0)
但是,当我尝试导入时,我得到:
(venv) Daniels-Air:bin danieldow$ python3
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import beatbox
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/danieldow/venv-python3/venv/lib/python3.5/site-packages/beatbox/__init__.py", line 1, in <module>
from _beatbox import _tPartnerNS, _tSObjectNS, _tSoapNS, SoapFaultError, SessionTimeoutError
ImportError: No module named '_beatbox'
在站点包中的 beatbox 目录中,-beatbox 模块在那里:
(venv) Daniels-Air:site-packages danieldow$ pwd
/Users/danieldow/venv-python3/venv/lib/python3.5/site-packages
(venv) Daniels-Air:site-packages danieldow$ cd beatbox
(venv) Daniels-Air:beatbox danieldow$ ls
__init__.py _beatbox.py python_client.py
__pycache__ marshall.py xmltramp.py
有人可以告诉我我做错了什么或我可以尝试什么吗?
谢谢!
段
*PS 在 Pycharm 中,在解释器下,它确实显示正在安装包。
问题是 beatbox 是为 Python 2.x 编写的。 'pip instal beatbox3' 成功了。
你已经解决了这个问题。但我会告诉你更多的事情。
在Python中,请运行这些代码:
import sys
print(sys.path)
这将打印环境变量。如果你发现这些环境变量是你的系统 Python 而不是你的 venv Python,那么原因必须是以下两个原因之一:
- 您已在
.zshrc
中写入别名,并将python
指向系统的 python 路径。如果是这样,只需删除别名即可。 - 您的 python 在 venv 中的软链接已损坏。它找不到 python 二进制文件的正确位置。如果是这样,重建软链接或重新创建一个venv并使用参数:--copy
virutalenv venv --copy