V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icedx
V2EX  ›  分享发现

在 Cent7 上用 Python3 简直太魔幻了

  •  
  •   icedx · 2017-08-06 11:37:17 +08:00 · 4295 次点击
    这是一个创建于 2669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先是 Python3 的二进制文件名居然是 python3.6

    然后安装依赖的时候用 pip3 install MySQLdb 后, 程序找不到这个包
    经过一番调查发现是安装过程中使用了 python setup.py install 这个命令, 导致本该装在 Python3 的 MySQLdb 被装到了 Python2 的目录下

    太魔幻了
    23 条回复    2017-08-13 11:16:20 +08:00
    Trim21
        1
    Trim21  
       2017-08-06 12:07:24 +08:00 via iPad
    是时候用 docker 了。。
    oxoxoxox
        2
    oxoxoxox  
       2017-08-06 12:11:03 +08:00 via iPhone
    关键字 pyenv
    或者你手动指定 python 软连接
    oxoxoxox
        3
    oxoxoxox  
       2017-08-06 12:17:11 +08:00 via iPhone
    另外 这并不是 CentOS7 的锅 其他 linux 发行版也会有这样的问题
    ywgx
        4
    ywgx  
       2017-08-06 12:18:28 +08:00
    pip3
    playniuniu
        5
    playniuniu  
       2017-08-06 12:44:19 +08:00 via iPhone
    你这明显是把 python3 和 python 2 混用起来的节奏啊 另外 python 3 上请用 pymysql 做驱动
    showgood163
        6
    showgood163  
       2017-08-06 12:46:33 +08:00 via Android
    手动软连接比较合适,arch 上也是一样的
    ik
        7
    ik  
       2017-08-06 12:56:19 +08:00 via iPhone
    cp python3.6 python

    或者

    ln -s ....../python3.6 ...../python
    Kilerd
        8
    Kilerd  
       2017-08-06 13:06:13 +08:00
    是时候来一波 pyenv 了
    或者 docker
    RqPS6rhmP3Nyn3Tm
        9
    RqPS6rhmP3Nyn3Tm  
       2017-08-06 13:09:43 +08:00
    Archlinux ARM 上任何东西都很魔幻
    jy02201949
        10
    jy02201949  
       2017-08-06 13:13:24 +08:00 via Android
    2、3 混用就是这样的啦
    rrfeng
        11
    rrfeng  
       2017-08-06 13:16:01 +08:00
    典型的搞不清楚原理就乱喷

    7 系统默认 python 是 2.7,所以 3 肯定是你装的。装的不同方式会有不同调用形式,直接 rpm install 或者 make install 就会替换系统一些 python 组件啊软链之类的。

    所以一般要装的话加 --prefix,全路径调用,不影响系统。程序用 pyenv
    halfbloodrock
        12
    halfbloodrock  
       2017-08-06 13:29:59 +08:00
    MySQLdb 不支持 python3....
    hjc4869
        13
    hjc4869  
       2017-08-06 13:37:02 +08:00 via iPhone
    二进制名称是 python3.6,是自己编译的吧?
    billlee
        14
    billlee  
       2017-08-06 16:23:18 +08:00
    用 mysqlclient. mysql-python 根本就不支持 python3 吧
    Tyanboot
        15
    Tyanboot  
       2017-08-06 16:41:18 +08:00
    mysql-python 就不支持 py3. 你能装到 py3 就不对了.

    另外 centos7 上的 py3 也只是 3.4 而已, 3.6 是你自己编译的吧.

    @ik 你这样会直接让 yum 挂掉的吧= =
    ansheng
        16
    ansheng  
       2017-08-06 17:05:21 +08:00
    pyenv......
    Osk
        17
    Osk  
       2017-08-06 17:38:39 +08:00
    virtualenv 创建时使用 virtualenv -p python3.6 可将 python3 作为 python 命令的默认版本。
    catror
        18
    catror  
       2017-08-06 17:57:15 +08:00 via Android
    不需要使用 Python2 的话,把软连接改掉就好了…其他 Linux 发行版一样
    k9982874
        19
    k9982874  
       2017-08-06 18:23:57 +08:00 via iPad
    python 不指定默认链接到 python2.7。我觉得这是楼主不熟悉系统的锅。
    julyclyde
        20
    julyclyde  
       2017-08-06 20:37:34 +08:00
    用了 2 的 pip 这问题,完全是你自己的问题啊
    可执行文件叫做 python3.6 这个事,应该还会有个叫 python3 的吧
    ik
        21
    ik  
       2017-08-06 23:04:40 +08:00 via iPhone
    @Tyanboot yum 里,再改成 2.6 吧😳
    x7395759
        22
    x7395759  
       2017-08-07 11:29:06 +08:00
    新技能 get,嘲讽。
    kmahyyg
        23
    kmahyyg  
       2017-08-13 11:16:20 +08:00 via Android
    来来来,投入我 debian 教的怀抱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2790 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:20 · PVG 23:20 · LAX 07:20 · JFK 10:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.