如何不使用 pip 将软件包安装到 anaconda

Júl*_*rko 8 python linux installation pip anaconda

我有关于 pip 的问题。

当我想安装一些包时,例如flask,它想将其安装到/anaconda3。

juldou@juldou-machine:~$ pip install flask
Requirement already satisfied (use --upgrade to upgrade): flask in ./anaconda3/lib/python3.5/site-packages
Run Code Online (Sandbox Code Playgroud)

我知道我已经有了 Flask,但我不想将其安装到 anaconda 上。

如何退出anaconda的pip并设置其他环境,或者如何处理?抱歉,但我不明白基本概念。

djh*_*ese 7

命令pip属于它所安装的任何 python 环境。运行命令时执行的确切二进制文件由 PATH 环境变量确定,并且首先执行找到的任何可执行文件。在您的情况下,您的 Anaconda 环境位于系统 python 之前的 PATH 中。如果您有 virtualenv 或 conda 子环境并且想要使用其中的可执行文件,那么“激活”这些环境应该使它们可用。

因此,您的选择是要么指定完整路径pip,要么python指定您想要从非 anaconda 环境运行的任何可执行文件:

/path/to/my_other_env/bin/pip install flask
Run Code Online (Sandbox Code Playgroud)

或者不将 Anaconda 添加到您的 PATH(最有可能在您的 .bashrc 或 .bash_profile 中)或在您的 PATH 前面添加非 anacondabin目录的路径:

export PATH=/path/to/my_other_env/bin:$PATH
pip install flask
Run Code Online (Sandbox Code Playgroud)

但是,这样做会破坏 Anaconda 的正常工作流程,因此类似以下内容可能不再有效:

source activate <conda-env>
Run Code Online (Sandbox Code Playgroud)

如果您从 PATH 中完全删除了 Anaconda,那么您也将无法conda在不指定完整路径的情况下找到该命令:

/path/to/anaconda/bin/conda update ...
Run Code Online (Sandbox Code Playgroud)