V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
oska874
V2EX  ›  Linux

xubuntu 下使用 pip 安装模块后不能用

  •  
  •   oska874 · 2015-09-28 23:31:25 +08:00 · 2378 次点击
    这是一个创建于 3343 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2015-09-29 21:47:01 +08:00
    有什么办法恢复到原始情况?现在真是地狱了,修改了 PYTHONPATH ,然后 pip 执行就报错了,不修改程序不能执行。普通用户和 root 都要修改 python ,但是 sudo 时候还是提示找不到模块,疯了。
    13 条回复    2015-10-01 01:32:36 +08:00
    msg7086
        1
    msg7086  
       2015-09-29 05:27:11 +08:00   ❤️ 1
    自带 + 编译安装 ≈ 依赖地狱
    firemiles
        2
    firemiles  
       2015-09-29 10:02:18 +08:00
    用的是 python2.7.6 的 pip 还是 2.7.10 的 pip ,不会用错了吧
    hujianxin
        3
    hujianxin  
       2015-09-29 10:04:53 +08:00 via iPhone
    用 pyenv
    oska874
        4
    oska874  
    OP
       2015-09-29 10:20:16 +08:00
    @firemiles 可以确认已经没有 2.7.6 了
    @hujianxin 怎么用?
    刚才看了下,发现 PYTHONPATH 是空的,强制赋值后就可以用了。但是 python 命令行里面 sys.path 一直是正常的。难道说重新安装 python 之后会清掉 PYTHONPATH ?还是说 PYTHONPATH 本来就是空的
    lln133208
        5
    lln133208  
       2015-09-29 13:48:33 +08:00
    多版本 python 共存的话用**pyenv**好些
    oska874
        6
    oska874  
    OP
       2015-09-29 15:26:59 +08:00
    @lln133208 现在已经出问题了,该怎么解决?
    yaxin
        7
    yaxin  
       2015-09-29 17:17:49 +08:00
    你需要的是这一条```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 ,难道有什么飞跃性的特性吗?
    oska874
        8
    oska874  
    OP
       2015-09-29 21:39:45 +08:00
    @yaxin 话说你给的路径我这没的,只有 /usr/local/lib/python2.7/config/
    而且我这都是安装成功的,是在 py 里面 import 的时候报的错。
    yaxin
        9
    yaxin  
       2015-09-30 09:45:40 +08:00 via iPhone
    @oska874 我都把文件名给你了,你 locate 一下不就行了。
    oska874
        10
    oska874  
    OP
       2015-09-30 10:24:49 +08:00
    @yaxin /usr/local/lib/libpython2.7.a 可以找到,但是他是干什么的?和 module 引用有关系吗?
    oska874
        11
    oska874  
    OP
       2015-09-30 10:34:40 +08:00
    @msg7086 有什么办法恢复呢?
    hsyu53
        12
    hsyu53  
       2015-09-30 22:51:29 +08:00 via Android
    因为你的 pip 是在 Python 2.7.10 之前安装的。我跟你遇到过一样的问题,用的笨办法: 重新安装 pip ,再用新的 pip 重新安装需要的 package
    oska874
        13
    oska874  
    OP
       2015-10-01 01:32:36 +08:00
    @hsyu53 没用。
    没办法了,只能用 so 上有人提供的办法,安装了 anaconda ,然后吧默认 python 改成了 anaconda 带的,问题就解决了,但是看到 anaconda 的 python 是用 gcc 4.4.7 编译的,又有些强迫症了。
    现在就用 conda 和 pip 来做虚拟环境和安装软件了,看着还行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:41 · PVG 03:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.