技术解析

xubuntu 下使用 pip 安装模块后不能用
0
1975-02-26 00:41:40
idczone

系统是 xubuntu 14.04 ,自带 python 2.7.6 ,然后自己编译安装了 2.7.10 ,现在使用 pip 安装第三方模块( pytftpdlib 和 numpy ),安装时使用 sudo (不然提示权限不足),安装好之后,在 /usr/local/lib/python2.7/下也可以找到新安装的模块文件,但是在代码里面引用模块时却提示找不到模块,开始怀疑时用户权限不足,所以就 su 到 root ,再执行,还是一样的错误,用 python 3.4 执行也是一样的效果。
这个是什么原因啊,怎么破?


自带 + 编译安装 ≈ 依赖地狱

用的是 python2.7.6 的 pip 还是 2.7.10 的 pip ,不会用错了吧

用 pyenv

可以确认已经没有 2.7.6 了
怎么用?
刚才看了下,发现 PYTHONPATH 是空的,强制赋值后就可以用了。但是 python 命令行里面 sys.path 一直是正常的。难道说重新安装 python 之后会清掉 PYTHONPATH ?还是说 PYTHONPATH 本来就是空的

多版本 python 共存的话用**pyenv**好些

现在已经出问题了,该怎么解决?

你需要的是这一条```ln -s /usr/local/python27/lib/python2.7/config/libpython2.7.a /usr/lib```
也是就是说,模块编译查找 lib 貌似并不会找到 /usr/local/lib 下面的
http://yaxin-cn.github.io/Python/issue-when-install-python-cffi.html 这个你可以参考一下,但不一定适合你
话说有 2.7.6 为什么还要装 2.7.10 ,难道有什么飞跃性的特性吗?

话说你给的路径我这没的,只有 /usr/local/lib/python2.7/config/
而且我这都是安装成功的,是在 py 里面 import 的时候报的错。

我都把文件名给你了,你 locate 一下不就行了。

/usr/local/lib/libpython2.7.a 可以找到,但是他是干什么的?和 module 引用有关系吗?

有什么办法恢复呢?

因为你的 pip 是在 Python 2.7.10 之前安装的。我跟你遇到过一样的问题,用的笨办法: 重新安装 pip ,再用新的 pip 重新安装需要的 package

没用。
没办法了,只能用 so 上有人提供的办法,安装了 anaconda ,然后吧默认 python 改成了 anaconda 带的,问题就解决了,但是看到 anaconda 的 python 是用 gcc 4.4.7 编译的,又有些强迫症了。
现在就用 conda 和 pip 来做虚拟环境和安装软件了,看着还行。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服