osx 上的 python 环境不好用, pip 总是报 permission denied 错误,有什么好的方式吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shade
V2EX    macOS

osx 上的 python 环境不好用, pip 总是报 permission denied 错误,有什么好的方式吗?

  •  
  •   shade 2016-01-23 14:48:07 +08:00 8147 次点击
    这是一个创建于 3554 天前的主题,其中的信息可能已经有所发展或是发生改变。
    34 条回复    2016-01-27 12:54:49 +08:00
    pupboss
        1
    pupboss  
       2016-01-23 14:52:29 +08:00
    sudo
    ming2281
        2
    ming2281  
       2016-01-23 14:53:02 +08:00 via Android
    你是没有在 win 安装过某些 py 包
    超级痛苦
    kkhaike
        3
    kkhaike  
       2016-01-23 14:54:27 +08:00
    El Capitan 有些包都无法 sudo 了
    我已经全部使用 --user 安装
    aisk
        4
    aisk  
       2016-01-23 14:54:50 +08:00
    建议先学一下基本的 unix 环境知识,否则别人告诉你“前面加 sudo ”就好了,你以为解决了,以后还会一直被其他问题坑。
    zjuhwc
        5
    zjuhwc  
       2016-01-23 15:03:10 +08:00   3
    装 anaconda 发行版
    1. 会在~下建立一个文件夹,所有的 python 执行文件和安装的包都在里面,不影响系统自带 python
    2. 不会出现权限问题
    3. 自带用于 python 科学计算的很多包,自带很多工具

    ```
    $ which python
    /Users/xxxxxx/anaconda/bin/python
    ```
    2owe
        6
    2owe  
       2016-01-23 15:32:18 +08:00
    virtualenv 呀,比如:

    virtualenv ~/.pyenv

    然后把 ~/.pyenv/bin 加到 $PATH 中
    FrankFang128
        7
    FrankFang128  
       2016-01-23 15:38:13 +08:00
    brew install python
    empilot     8
    empilot  
       2016-01-23 16:03:12 +08:00
    确实, El Capitan 之前 Mac 上 Python 的 pip 用起来妥妥的。
    现在发现 virtualenv 才是王道。
    boyhailong
        9
    boyhailong  
       2016-01-23 16:38:14 +08:00
    显然应该用 virtualenv 啊 这样就解决了权限问题
    zhangyi2099
        10
    zhangyi2099  
       2016-01-23 16:39:37 +08:00 via iPhone
    Pyenv
    jsfaint
        11
    jsfaint  
       2016-01-23 20:13:38 +08:00 via Android
    pyenv
    brew install Python
    pip install xxx --user
    以上三种方法均可

    我目前用第二种
    shade
        12
    shade  
    OP
       2016-01-23 20:16:35 +08:00
    发现 anaconda 发行版 最方便,安装后环境变量自动设置好,与系统 python 环境完全隔离。
    binux
        13
    binux  
       2016-01-23 20:20:30 +08:00
    千万不要在 osx 上装 anaconda
    千万不要在 osx 上装 anaconda
    osx 不是 windows , osx 是有 lib 依赖的,千万不要在 osx 上装 anaconda , anaconda 会把你机器上的依赖关系全部搞乱。以后编译出来的东西依赖哪里的库都搞不清楚,会解决的人不需要 anaconda ,不会的人,只能重装。
    pangtianyu
        14
    pangtianyu  
       2016-01-23 20:56:12 +08:00
    El Capitan 的话开了 SIP 之后只能动 /usr/local/ 里面的东西 所以把 pip 装在 /usr/local/ 里面就好了 虽然还是要 sudo 一下因为这个 directory 只有 root 有权限…… 不想 sudo 的话就用 virtualenv 吧……
    tempdban
        15
    tempdban  
       2016-01-24 01:22:50 +08:00 via Android
    mac 背了一口大锅啊
    tempdban
        16
    tempdban  
       2016-01-24 01:23:31 +08:00 via Android
    pip 多数平台上都得要
    root 权限
    jamesfjx
        17
    jamesfjx  
       2016-01-24 05:32:18 +08:00 via iPhone
    brew install python
    pip list -o
    pip install xxx 或 pip install -U xxx

    期间可能需要 brew link python
    Feiox
        18
    Feiox  
       2016-01-24 10:09:32 +08:00
    楼主,你需要 pyenv 从此无忧 ~
    canesten
        19
    canesten  
       2016-01-24 11:18:02 +08:00 via Android
    virtualenv
    Sequencer
        20
    Sequencer  
       2016-01-24 12:27:18 +08:00 via iPhone
    估你在 sudo 下安了 py
    用 brew 在 user 下安一次
    ihciah
        21
    ihciah  
       2016-01-24 12:30:00 +08:00
    virtualenv 正解
    OnceMore2020
        22
    OnceMore2020  
       2016-01-24 12:35:39 +08:00
    virtualenv 正解
    chroming
        23
    chroming  
       2016-01-24 14:17:34 +08:00
    @zjuhwc 这两天刚被 anaconda 坑了,卸了用自带的了
    chroming
        24
    chroming  
       2016-01-24 14:17:51 +08:00
    @Sequencer py 不是自带的吗?
    shade
        25
    shade  
    OP
       2016-01-24 14:52:08 +08:00
    @chroming 怎么被坑的
    zjuhwc
        26
    zjuhwc  
       2016-01-24 17:48:41 +08:00
    @chroming 同问什么坑
    zjuhwc
        27
    zjuhwc  
       2016-01-24 17:50:09 +08:00
    @binux 你指的依赖是?库么?还是 python 开发文件,比如 python.c 之类的?
    binux
        28
    binux  
       2016-01-24 18:27:33 +08:00
    @zjuhwc 例如 libcurl 之类的库
    chroming
        29
    chroming  
       2016-01-24 19:28:57 +08:00
    @shade @zjuhwc 也怪我水平不够。是 requests 和 gevent 一起用时候报错,一直找不到原因,后来怀疑可能是 anaconda 自带 greenlet 版本太低想升级也报错。卸了用自带的环境就正常了……
    chemzqm
        30
    chemzqm  
       2016-01-25 03:27:04 +08:00
    如果你不乱搞或者不怕死的话:

    sudo chown -R (whoami) /Library/Python
    chemzqm
        31
    chemzqm  
       2016-01-25 03:28:05 +08:00
    上面是 fish 语法, bash 要这样
    sudo chown -R `whoami` /Library/Python
    l6751902
        32
    l6751902  
       2016-01-25 09:42:42 +08:00
    随便来问一下有什么办法能搜到某台机器之前用 virtualenv 建立过哪些环境么(或者叫查找通过 virtualenv 建立的文件夹?)
    newestuser
        33
    newestuser  
       2016-01-26 14:43:07 +08:00
    一直用 conda 感觉还不错
    ciki
        34
    ciki  
       2016-01-27 12:54:49 +08:00
    最新的 mac 系统已经不允许任何权限去操作 usr/bin 了, sudo 都不行,所以你需要重新安装 python 到 user/local 下面去
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3250 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:15 PVG 19:15 LAX 04:15 JFK 07:15
    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