ubuntu 中有两个 python 怎么办 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skyboy
V2EX    问与答

ubuntu 中有两个 python 怎么办

  •  
  •   skyboy 2016-11-11 11:01:47 +08:00 4295 次点击
    这是一个创建于 3335 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 新安装的 ubuntu 中执行 sudo apt-get install python 3.5 ,然后查询 python -V 显示 2.7 , python3 -V 显示 3.5.

    但是想让 ubuntu sublimetext 用 python3.5 的语法怎么办。执行 sudo apt-get autoremove python ,完毕。

    查询 python -V 还是现实 python2.7. python3 -V 显示 3.5 。而在 sublimetext 中新建一个 test.py 文件,输入:

    print "hello wold";
    print("hello world");

    按 ctrl+b 都能通过,请问怎么干净去掉 python 2.7,让 ubuntu 和 sublimtext 只使用 python3.5.
    20 条回复    2016-11-11 17:07:11 +08:00
    zipipi
        1
    zipipi  
       2016-11-11 11:05:31 +08:00
    不是可以指定版本的么
    shaoS
        2
    shaoS  
       2016-11-11 11:17:50 +08:00
    把 /usr/bin/python -> python2.7 改成这样 /usr/bin/python -> python3.5
    SpicyCat
        3
    SpicyCat  
       2016-11-11 11:24:05 +08:00
    http://itcoding.tk/2016/06/19/python-alternatives/
    上面那篇博文说的比较全面。
    如果主力用 Ubuntu 的话,建议详细了解一下 update-alternatives ,它是 Debian 系管理多版本软件的工具,不仅适用 Python ,而且还使用 Java 等各种有多版本共存需求的软件。
    它跟 virtualenv 这种虚拟环境不同的是, update-alternatives 管理的是系统级的软件版本, virtualenv 管理的是当前用户下的一个虚拟环境。
    当然就你的需求而言,只要你在 virtualenv 启动的虚拟环境下打开 sublime ,那也没问题,但终究不方便。
    hosiet
        4
    hosiet  
       2016-11-11 11:34:49 +08:00 via Android   2
    不要试图修改系统指定的 python 解释器,不要卸载,不要改软链接。修改的后果是严重的,对 python 2/3 有严格区分的软件会集体崩掉。
    feather12315
        5
    feather12315  
       2016-11-11 11:35:45 +08:00 via Android
    楼上说法正确。
    skyboy
        6
    skyboy  
    OP
       2016-11-11 11:49:38 +08:00
    @hosiet 那我想问,这样两个版本共存的情况下。我在 sublimetext 中编辑.py 文件,执行时他到底用的是 python2.7 的语法,还是用的 3.5 的语法。这两个版本到底哪个起作用,在此感觉迷糊了。
    hosiet
        7
    hosiet  
       2016-11-11 11:54:07 +08:00 via Android
    这你需要看 sublime 究竟是调用 python / python2 / python3 / python2.7 / python3.5 中的哪一个做解释器,以及究竟有没有选项进行修改。

    我不用 sublime 所以并不知道。
    yxcxx
        8
    yxcxx  
       2016-11-11 11:57:40 +08:00
    为什么不试试
    #! /usr/bin/env python3
    #! /usr/bin/env python2
    dexterzzz
        9
    dexterzzz  
       2016-11-11 12:26:54 +08:00
    用 anaconda
    sensui7
        10
    sensui7  
       2016-11-11 12:33:32 +08:00 via iPhone
    @skyboy 你管他用那个呢? sublime 还内置了 python 呢?自己手动创建个 build 配置就行了。
    kkzxak47
        11
    kkzxak47  
       2016-11-11 12:55:19 +08:00 via Android
    想 ctrl+b build 那就在 sumlime text 里配置 build 啊,查文档啊,改系统是怎么回事???
    neosfung
        12
    neosfung  
       2016-11-11 13:04:13 +08:00
    尽量用 pyenv
    LigeLaige
        13
    LigeLaige  
       2016-11-11 13:19:07 +08:00
    去掉 py2 或 py3 是作死,如果可以去,发行版中早就去了
    你可以可以在 python 程序第一行写成
    #!/usr/bin/env python

    #!/usr/bin/env python2

    #!/usr/bin/env python3
    以指定对应版本

    再次强调,##去掉 py2 或 py3 是作死##
    syahd
        14
    syahd  
       2016-11-11 13:22:31 +08:00 via Android
    别删除啊,不用就行了,我曾经就在服务器上作死地删除了自带的 python ,然后一堆系统软件依赖,最后系统没法用了,只能重装
    panda1001
        15
    panda1001  
       2016-11-11 13:22:39 +08:00 via Android
    建议自己编译安装 python+virtualenv ,每次要用就切换不同的环境
    noe132
        16
    noe132  
       2016-11-11 13:47:21 +08:00 via Android
    Ubuntu 不要删掉 python 。 。否则一堆问题。
    修改 sublime 的编译配置文件就好了
    bsns
        17
    bsns  
       2016-11-11 14:40:25 +08:00 via Android
    我 14.04 时把系统默认 python 链接为 3.结果重启后出了问题,最后忘了怎么改回去的了,估计是重装了。
    chousb
        18
    chousb  
       2016-11-11 14:42:16 +08:00
    不要作死,删 python 你系统肯定挂。
    sublime 写 python ,你看一下 build 文件怎么写的就行了。
    8rB61FLBPVSxW2C8
        19
    8rB61FLBPVSxW2C8  
       2016-11-11 15:30:36 +08:00
    我是修改 Anaconda 的配置文件指定 python_interpreter
    wohenyingyu02
        20
    wohenyingyu02  
       2016-11-11 17:07:11 +08:00
    python3 -m venv ~/PyEnv
    每次使用前进入环境:
    source ~/PyEnv/bin/activate
    使用后退出环境
    deactivate

    不谢。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4011 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:30 PVG 13:30 LAX 21:30 JFK 00:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86