V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hanyceZ
V2EX  ›  问与答

快要被 mac 上的 Python 版本和 pip 安装到 site-packages 的位置弄晕了,请教下如何用 pip 把想要的包安装到自己指定的 Python 版本中的 site-packages 中?

  •  
  •   hanyceZ · 2019-12-20 16:13:35 +08:00 · 3284 次点击
    这是一个创建于 1805 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安装过的途径:

    • 自己之前 brew 装过 pyhton3
    • 官方上也下载过 python3 的版本
    • 也使用过 pyenv 安装过两个版本(目前正使用)
      • 3.7.5
      • 3.8

    现在有些疑问

    这两天 pip 安装后的包进入到了这个目录下的原因是不是:自带的 pip 都会安装到 mac 自带的 python2.7 的 site-packages 中?:

    /Library/Python/2.7/site-packages
    

    • 然后我用 pycharm 选择 3.7.5 的解释器为啥会显示我有两个 site-packages ?其中的 libaray root 是什么意思?图片在这
    • 之后用 pip -t 指定了 3.8 为什么也不会将包安装到 3.8 的 site-packages 中?
    • 一直在用 virtualenv,现在不用了 virtualenv 后一大堆问题,
    19 条回复    2019-12-24 12:02:13 +08:00
    hanyceZ
        1
    hanyceZ  
    OP
       2019-12-20 16:15:30 +08:00
    图片分享不出去,,,
    和谐 https://和谐 imgur.和谐 com/6hvYL9j
    vissssa
        2
    vissssa  
       2019-12-20 16:26:16 +08:00
    我是用的 pyenv + pipenv
    nnqijiu
        3
    nnqijiu  
       2019-12-20 16:28:40 +08:00
    就用一个 python 不就可以了,把多余的删掉
    hanyceZ
        4
    hanyceZ  
    OP
       2019-12-20 16:33:31 +08:00
    @nnqijiu 问题就是通过各种途径安装了太多 python 后,都找不到之前安装过的 python 位置、pip 位置、site-packages 位置了,我也想删掉
    gwy15
        5
    gwy15  
       2019-12-20 16:35:18 +08:00
    python3.7 -m pip install package
    python3.8 -m pip install package

    或者:
    alias pip3.7 = python3.7 -m pip
    rogwan
        6
    rogwan  
       2019-12-20 16:40:22 +08:00 via iPhone
    > virtualenv 后一大堆问题

    venv 后遇到什么问题了?
    cxyfreedom
        7
    cxyfreedom  
       2019-12-20 16:49:32 +08:00
    用 python -m pip install
    hanyceZ
        8
    hanyceZ  
    OP
       2019-12-20 16:51:48 +08:00
    @rogwan 大佬你看错了,我之前一直用的就是 venv,很稳。最近想整理整理 mac 上安装过的东西,该删删,该卸卸。于是就出现了上面的问题
    zero469
        9
    zero469  
       2019-12-20 16:52:34 +08:00
    用 conda 吧
    hanyceZ
        10
    hanyceZ  
    OP
       2019-12-20 16:55:17 +08:00
    @gwy15 迫于我之前 mac 上安装过 N 多 python 版本,我已经 alias 了一个默认的 python 版本
    ```
    alias python='/Users/xxxxxx/.pyenv/versions/3.7.5/bin/python'
    ```
    后面再来个
    ```
    alias pip=python -m pip
    ```
    alias-pip 中的 python 也会使用我之前定义的 alias-python 吗
    hanyceZ
        11
    hanyceZ  
    OP
       2019-12-20 16:56:40 +08:00
    这是我 python 的位置,也很懵,有大佬解释下分别是什么的吗
    ```
    [xxx@ ~] where python
    python: aliased to /Users/zhangyihan/.pyenv/versions/3.7.5/bin/python
    /usr/bin/python
    /usr/local/bin/python
    /usr/local/bin/python
    /usr/bin/python
    /usr/local/bin/python
    ```
    GoLand
        12
    GoLand  
       2019-12-20 16:58:43 +08:00
    先把 alias 里的 python 和 pip 干掉。基本是这两个 alias 带来的问题。
    littleylv
        13
    littleylv  
       2019-12-20 17:00:10 +08:00
    ~ which pip
    ~ which pip3
    ~ which python
    ~ which python3
    hanyceZ
        14
    hanyceZ  
    OP
       2019-12-20 17:04:14 +08:00
    @littleylv
    ```
    [xx@xxx ~] which pip
    /usr/local/bin/pip
    [xxx@xxx ~] which pip3
    /usr/bin/pip3
    [xxx@xxx ~]
    [xxx@xxx ~] which python
    python: aliased to /Users/xxxxx/.pyenv/versions/3.7.5/bin/python
    [xxx@xxx ~] which python3
    /usr/bin/python3
    ```
    gwy15
        15
    gwy15  
       2019-12-20 17:06:49 +08:00
    默认 pip (/usr/bin/pip) 会调用 /usr/bin/python3,所以不会识别你的 alias python

    我还是建议你
    alias pip3.7 = /usr/bin/python3.7 -m pip
    lau52y
        16
    lau52y  
       2019-12-20 20:28:51 +08:00 via iPhone
    anaconda,然后设置为 anaconda 的 python,快速又不麻烦
    Kobayashi
        17
    Kobayashi  
       2019-12-21 21:12:41 +08:00 via Android
    又遇到一个不读 pyenv README 的,你这是 pyenv 没有初始化
    conn4575
        18
    conn4575  
       2019-12-22 06:53:31 +08:00 via Android
    通过 brew install 的 python3,保留,单只提供给一些系统依赖使用,自己的写的程序不要用,与之对应的是 pip3,而不是 pip
    自己安装的 python,相关目录都删掉
    各种 alias 的骚操作,删掉
    自己需要用的 pyhon 全部都用 pyenv 安装,每次使用前也需要用 pyenv activate xxx 激活环境
    pycharm 里选择的解释器也要选择 pyenv 安装的版本
    julyclyde
        19
    julyclyde  
       2019-12-24 12:02:13 +08:00
    pip 不是独立的 pip
    pip 是 python 里的一个库
    你用哪个 pip,就是用哪个 python
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1213 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.