被 Mac 上的 Python 爆击 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
azev

被 Mac 上的 Python 爆击

  •  
  •   azev Jun 24, 2020 9168 views
    This topic created in 2142 days ago, the information mentioned may be changed or developed.

    系统内置了一个 python2
    安装 xcode 的时候内置了 Command Line Tools 其中有 python3.7
    后来安装 brew 要求必须再单独安装个 Command Line Tools 其中又包含了 python3.7
    通过 brew 安装了一个软件 依赖并安装了 python3.8

    想问问 这些 python 是都创建软连接了?会不会有冲突?

    28 replies    2020-06-25 22:14:55 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Jun 24, 2020   2
    每一个所在的目录都不一样,当你在命令行敲了 python 之后,调用谁取决于你的 PATH 设置。

    如果想彻底控制这件事情,推荐 pyenv:

    t/420216
    NoobPhper
        2
    NoobPhper  
       Jun 24, 2020
    brew link --force
    volvo007
        3
    volvo007  
       Jun 24, 2020
    建议别这么干…… 装个 pip 或者 conda,用相关的功能 (比如 conda create -n <pyEnvName> python=3.8 )来管理和隔离不同的 py 环境
    VDimos
        4
    VDimos  
       Jun 24, 2020 via Android
    别动默认的 python,用 miniconda 管理 python
    justin2018
        5
    justin2018  
       Jun 24, 2020
    用 conda 或者 Google Colab
    Mutoo
        6
    Mutoo  
       Jun 24, 2020
    之前研究过这个问题,macos 系统里其实有两个 python 2

    /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
    /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

    /System 目录为 root 管理员专用路径,该 pythong 用于系统维护之类的场景,平时不用。
    /Library 目录为所有用户共享,但仅有管理员能修改(安装、删除)其中的内容,需要 sudo 权限才能安装 package

    此外不同工具自带的 python 主要是考虑到自己的依赖。

    你需要的解决方案是虚环境 venv/pyenv
    ttimasdf
        7
    ttimasdf  
       Jun 24, 2020 via Android
    日常使用 pyenv 可定制性比较高,
    podel
        8
    podel  
       Jun 24, 2020
    除了 venv/pyenv
    另外还推荐一个 miniconda
    sh 直接安装 安装好了 直接用。想切什么版本 切什么版本。
    Xusually
        9
    Xusually  
       Jun 24, 2020
    macOS 的日常,自带的这些自己别动。
    python 用 conda 之类的管理
    brew 安的其他软件在 brew 自己的目录里,link 不 link 最也可以控制的
    系统自动启动的服务和你的冲突的话,把系统的关掉,用你自己的
    说到底,还是环境的事儿,看看环境变量就知道
    laike9m
        10
    laike9m  
       Jun 24, 2020
    直接 pyenv 一把梭即可
    LennieChoi
        11
    LennieChoi  
       Jun 24, 2020
    conda 简直太香,同样 mac,当时看一文章教怎么改系统的 python,差点误入歧途
    BBCCBB
        12
    BBCCBB  
       Jun 24, 2020
    我本来 vim 用的好好的, 后来出现了你说的这种多个 python 环境, 编译 vim 后一直报错.. 我就换 neovim 了.. 蛋疼.
    bytesfold
        13
    bytesfold  
       Jun 24, 2020
    conda
    nightwitch
        14
    nightwitch  
       Jun 24, 2020
    这个也不算是 macos 上的问题洛,在 Windows,Linux 上装不同版本的 Python 环境也会碰到一样的问题。
    conda/pyenv 解决问题
    itskingname
        15
    itskingname  
       Jun 24, 2020
    我写了一篇公众号特别来说明这个问题: https://mp.weixin.qq.com/s/nOUXxAClAZf2Zb4aS3ADww
    Nick66
        16
    Nick66  
       Jun 24, 2020
    我也遇到这个问题
    TOUJOURSER
        17
    TOUJOURSER  
       Jun 24, 2020
    感觉还是 pyenv 比较自在
    ntdll
        18
    ntdll  
       Jun 24, 2020
    这个和系统关系不大了,python 自己的锅,放弃了向下兼容。这一点,不管怎么喷 Java,向下兼容做的是没得黑。
    keepeye
        19
    keepeye  
       Jun 24, 2020
    依赖中自带的 python 你又用不到,不影响。
    自己 python 环境通过 pyenv + virtualenv 管理吧
    cctv6
        20
    cctv6  
       Jun 24, 2020 via Android
    主要看环境变量 PATH,可以把 brew 的环境变量目录提前,让 brew 下的 python 排在默认的前面,这样在执行的时候就不会指向默认的 python 。
    同理,你可以通过修改管理变量来控制运行指定版本的 python 。
    Kobayashi
        21
    Kobayashi  
       Jun 24, 2020 via Android
    这算哪门子暴击,我还以为你强迫症犯了把系统 Python 卸载了。
    seakingii
        22
    seakingii  
       Jun 24, 2020
    python 。。真是乱。。光是环境管理就好几套。。
    indev
        23
    indev  
       Jun 25, 2020
    我也用的 miniconda
    liangch
        24
    liangch  
       Jun 25, 2020
    说好几套的,谁让你同时用了。自己多学习。
    lululau
        25
    lululau  
       Jun 25, 2020 via iPhone
    arischow
        26
    arischow  
       Jun 25, 2020 via iPhone
    网上乱七八糟的文章很多,想拿来就用的人也不少,对于不熟悉的人是比较困难的。楼主可以综合上面所说的研究一下。
    jiejiss
        27
    jiejiss  
       Jun 25, 2020
    $ where python
    /Users/me/anaconda3/bin/python
    /usr/local/bin/python
    /usr/bin/python

    首先你 $PATH 里可能就有多个。不在 $PATH 里的可能更多。每次 where 然后手动指定全路径还不如整 conda 或者 venv
    linvaux
        28
    linvaux  
       Jun 25, 2020
    conda 解君愁
    About     Help     Advertise     Blog     API     FAQ     Solana     6119 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 107ms UTC 02:26 PVG 10:26 LAX 19:26 JFK 22:26
    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