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

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

  •  
  •   shade · 2016-01-23 14:48:07 +08:00 · 7549 次点击
    这是一个创建于 3016 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   我们的愿景   ·   实用小工具   ·   2842 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.