我有一个运行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中,在解释器下,它确实将包显示为已安装。
答案 0 :(得分:1)
问题是beatbox是为Python 2.x编写的。 &#39; pip instal beatbox3&#39;它起作用了。
答案 1 :(得分:1)
你解决了这个问题。但我会告诉你更多的事情。
在Python中,请运行以下代码:
import sys
print(sys.path)
这将打印环境变量。如果您发现这些环境变量是您的系统Python而不是您的venv Python,那么原因必然是以下两个原因之一:
.zshrc
中写了别名,并将python
指向系统的python路径。如果是这样,只需删除别名。virutalenv venv --copy