2017-02-17 161 views
1

我遇到了python3的问题。由于某些原因,我无法弄清楚,python3中可用的模块与通过pip3安装的模块不同。Python3没有找到由pip3安装的模块

运行在终端的回报pip3 list

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. 
nltk (3.2.2) 
numpy (1.12.0) 
pandas (0.19.2) 
pip (9.0.1) 
python-dateutil (2.6.0) 
pytz (2016.10) 
setuptools (25.2.0) 
six (1.10.0) 
wheel (0.29.0) 

运行this script,看看哪些模块python3有可用的回报:

['cycler==0.10.0', 'matplotlib==1.5.3', 'nltk==3.2.1', 'numpy==1.11.2', 'pip==9.0.1', 'pyparsing==2.1.10', 'python-dateutil==2.6.0', 'pytz==2016.7', 'setuptools==18.2', 'six==1.10.0'] 

这两个是不一样的,我不知道为什么。例如,nltk的版本较旧。缺少pandas

我已经安装了python通过自制软件,我通过Textmate2运行脚本。但是,当我通过python3在终端中运行代码时,我遇到了同样的问题。无论PIP3和python3安装在/usr/local/bin/

$ which python3 pip3 
/usr/local/bin/python3 
/usr/local/bin/pip3 

而这也是该版本python3使用:

>>> import sys, os 
>>> os.path.dirname(sys.executable) 
'/usr/local/bin' 

如果有人可以帮助我弄清楚为什么是这样的情况,以及我如何修复它,我非常感谢帮助。

+0

尝试使用命令“ls -l'python3 pip3'”来查看链接指向的位置。 –

回答

1

看看pip3脚本的第一行。

第一行(与#!开始应该指向同一个可执行文件的符号链接蟒蛇3:

> head -n 1 /usr/local/bin/pip 
#!/usr/local/bin/python3.6 

> ls -ld /usr/local/bin/python3 
lrwxr-xr-x 1 root wheel 9 Dec 25 22:37 /usr/local/bin/[email protected] -> python3.6 

如果不是这种情况下,卸载的pip并用正确的Python版本重新安装。

+0

您说得对,pip指向一个旧的python3安装,我不知道我有。所有](http://superuser.com/a/276843/308345),并通过自制软件做了一个干净的安装。汉克斯! – altabq