我想知道以下importError,我无法逃脱。我有一个本地的virtualenv(venv),我在其中安装了多个模块:
(venv) stam@stam:~$ pip list --local
cryptography (1.5.2)
cvxopt (1.1.9)
cycler (0.10.0)
Cython (0.25.1)
matplotlib (1.5.3)
more-itertools (2.2)
ndg-httpsclient (0.4.2)
numpy (1.11.2)
pandas (0.19.0)
paramiko (1.15.2)
Pillow (2.8.1)
pip (8.1.2)
psycopg2 (2.6)
python-apt (0.9.3.12)
python-dateutil (2.5.3)
python-debian (0.1.27)
scipy (0.18.1)
setuptools (28.6.1)
simplejson (3.8.2)
urllib3 (1.9.1)
wheel (0.24.0)
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(venv) stam@stam:~$
现在启动python解释器并尝试导入cvxopt(注意它在上面的列表中)给了我一个importError。为什么是这样?我正在使用正确的python版本,我在venv上工作所以一切都应该开箱即用。
(venv) stam@stam:~$ python
Python 2.7.9 (default, Aug 13 2016, 16:41:35)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cvxopt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named cvxopt
>>>
我有点失落,不知道我究竟能解决这个问题。似乎正确的python版本已经启动,至少是我附加到virtualenv的版本。
在评论中要求提供其他分析
(venv) stam@stam:~$ which python
/usr/bin/python
(venv) stam@stam:~$ which pip
/usr/local/bin/pip
答案 0 :(得分:0)
根据which
的输出,你的python和pip似乎属于两个不同的实例。因此,您安装的所有库都将安装用于其他一些python实例。
急性修复是强制pip通过指定的解释器运行:
python -m pip list --local
python -m pip install cvxopt