V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
a251922581
V2EX  ›  Python

Linux 源安装的 Python3.4.3 版本,刚刚下载编译了官网的 Python3.6.3 版本,装上后 Python3 就挂了 提示 No module named 'readline'之类

  •  
  •   a251922581 · 2017-10-11 10:44:12 +08:00 · 5045 次点击
    这是一个创建于 2601 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Python3.6.3 版本 下载,解压
    ./configure
    make
    make install
    结果连输入 python3 或者 python3.6 这样的命令进去都报错,提示
    File "/etc/pythonstart", line7, in <module>
    import readline
    ModuleNotFoundError: No Module named 'readline'
    用 pip 提示没有 urllib3,用 virtualenv 提示没有_posixsubprocess
    有谁遇到过同样的问题解决了吗?自带的 Python3.4 通过包管理软件卸载了也没有用
    17 条回复    2017-10-11 16:49:09 +08:00
    Neveroldmilk
        1
    Neveroldmilk  
       2017-10-11 10:59:01 +08:00
    你要改环境变量吧。
    lovesky
        2
    lovesky  
       2017-10-11 11:02:25 +08:00
    编译 python 前需要先安装 libreadline-dev
    zhengxiaowai
        3
    zhengxiaowai  
       2017-10-11 11:19:46 +08:00
    Python 编译安装是需要一些依赖库的,如果缺少了这些依赖库,模块就不会加载。

    我记得 Python 在编译完成之后会提醒你哪些东西少了,你可以安装完成之后再重新编译 Python
    JamesMackerel
        4
    JamesMackerel  
       2017-10-11 11:42:33 +08:00 via iPhone
    虽然不反对你这样做……
    我想说,何苦编译安装呢。
    AstroProfundis
        5
    AstroProfundis  
       2017-10-11 12:25:35 +08:00
    另外如果你用的 root, configure 时候没指定 prefix 然后直接 make install 怕是把系统的给覆盖了?
    NoAnyLove
        6
    NoAnyLove  
       2017-10-11 12:48:37 +08:00
    似乎用 pyenv 没有遇到这种问题,不记得是自己安装了依赖还是 pyenv 自动安装的依赖。
    fy
        7
    fy  
       2017-10-11 13:11:24 +08:00
    直接用第三方源安装,编译安装麻烦不能卸载还事情多
    ysc3839
        8
    ysc3839  
       2017-10-11 13:21:21 +08:00
    借楼问一下,在没有 root 权限的机子上安装 Python 3 只能编译吗?
    Neveroldmilk
        9
    Neveroldmilk  
       2017-10-11 13:22:18 +08:00
    @ysc3839 你不可能没有 sudo 权限吧?
    hcnhcn012
        10
    hcnhcn012  
       2017-10-11 13:22:24 +08:00 via iPhone
    百度 annaconda
    ysc3839
        11
    ysc3839  
       2017-10-11 13:30:26 +08:00
    @Neveroldmilk 就是没有
    a251922581
        12
    a251922581  
    OP
       2017-10-11 15:03:45 +08:00
    @JamesMackerel 源里的 Python 只有 3.4.3 的啊,相装一下 3.6.3 的,官网对 Linux 好像只有源码包

    @AstroProfundis 是的。。
    现在已经把能找到的 3.6.3 的安装后的文件删掉了,原来的 3.4.3 用包管理工具删除再安装一下,目前勉强能用了。
    zzhcoder
        13
    zzhcoder  
       2017-10-11 15:30:57 +08:00
    sudo apt install libreadline-dev
    only0jac
        14
    only0jac  
       2017-10-11 15:38:37 +08:00 via Android
    @JamesMackerel
    @fy
    请问下要想安装官网最新版也只能编译吧?用的其他源一般都是旧的版本,有什么新源推荐吗?谢谢
    doubleflower
        15
    doubleflower  
       2017-10-11 15:48:59 +08:00 via Android
    楼主你犯了一个原则性错误,自己编一个包不要替换掉系统原有的包,特别是 python 这么重要的包。python 编译是可以 altinstall 到非系统目录的。
    fy
        16
    fy  
       2017-10-11 15:49:52 +08:00   ❤️ 1
    @only0jac #14

    一套标准连,我 vagrant 机器自用的

    ```bash
    sudo add-apt-repository ppa:deadsnakes/ppa
    apt-get update
    apt-get install -y python3.6 python3.6-dev

    rm /usr/bin/python3
    ln -s /usr/bin/python3.6 /usr/bin/python3

    curl https://bootstrap.pypa.io/get-pip.py | python3

    pip3 --version
    pip3 install pip --upgrade
    ```

    这个 3.6 源不是最有名的那个,最有名的那个会搞坏 apt,这个不会
    msg7086
        17
    msg7086  
       2017-10-11 16:49:09 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1427 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:04 · PVG 01:04 · LAX 09:04 · JFK 12:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.