使用pip安装了python的第三方库,但eclipse中导入不成功,import xxx时提示“no module named xxx”
版本
- eclipse 4.5.0
- python 2.7.11
- pip 8.1.1
为什么呢
先来看一下Eclipse中的Python Interpreter。打开Eclipse-偏好设置-PyDev-Interpreters-Python Interpreter
可以看到System Libs中第三方包的目录是/Library/Python/2.7/site-packages
再看一下pip的安装目录,打开终端,输入pip –version
可以看到pip的site-package的安装目录是/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
这样就找到原因了,是eclipse中的库路径与pip的下载路径不一致所造成的。我尝试修改了一下eclipse中的System Libs,点击New Folder去找pip的下载路径,然而根本找不到这个目录,而在Finder中是可以看到这个目录的(不知道为什么,是不是因为用户权限不同,可见性不一样?)
解决方法
在网上找了一圈,有人说可以把pip的site-package的安装目录下的所有文件拷贝到/Library/Python/2.7/site-packages下,然后写一个脚本,每次安装新的第三方库时都拷贝一次。然而宝宝比较懒,不想每次都执行脚本。
想了一下,这个方法可以用软链接来替代。软链接实际上是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理,就相当于Windows下的快捷方式。我们可以将/Library/Python/2.7/site-packages这个目录直接链接到第三方库的安装目录。
步骤
打开终端,进入目录/Library/Python/2.7/
1 | cd /Library/Python/2.7/ |
先做好备份
1 | sudo mv site-packages site-packages-backup |
链接两个目录
1 | sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ . |
查看一下属性
1 | localhost:2.7 yuuuu$ ls -l site-packages |
成功链接了两个目录
好了,再重启一下Eclipse,import下的红线消失了,大功告成!