使用Pip将软件包安装到Anaconda Environment


177

康达4.2.13 MacOSX 10.12.1

我正在尝试将软件包安装pip到使用anaconda创建的新环境(虚拟)中。 在Anaconda文档中,这说得很好。它的完成方式与virtualenv相同。

激活要放置程序的环境,然后pip安装程序...

我在Ananconda中创建了一个空环境,如下所示:

conda create -n shrink_venv

激活它:

source activate shrink_venv

然后,我可以在终端中看到我正在环境中工作(shrink_venv)。当我尝试使用来安装软件包时,问题来了pip

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

因此,我可以看到它认为从系统范围的软件包中可以满足要求。因此,似乎环境无法正常运行,绝对不像文档中所说的那样。我在这里做错什么了吗?

请注意,我知道您可以使用conda install这些软件包,但是anaconda的Pillow遇到了问题,因此我想从中获取它pip,并且由于文档说还可以。

输出which -a pip

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

**更新**我看到这是很常见的问题。我发现,conda env在PYTHONPATH中的表现不佳。即使您使用的是conda环境,系统似乎也总是在PYTHONPATH位置中查找。现在,我总是unset PYTHONPATH在使用conda环境时运行,并且效果更好。我在Mac上。


9
您尝试过conda install pip吗?
languitar '16

4
您可以将输出添加which -a pip到您的问题吗?
cel

1
您是否PYTHONPATH设置了环境变量?
darthbith,2013年

1
有类似的问题。明确使用Anaconda的点子似乎对我有用。
阿森·卢平

1
使用pip和conda安装东西真的安全吗?我认为您可能会遇到问题,例如不知道要修复哪个版本...
Charlie Parker

Answers:


201

对于遇到这种情况的其他人,我发现这是最直接的解决方案:

  1. 运行conda create -n venv_namesource activate venv_namevenv_name您的虚拟环境的名称在哪里。

  2. 运行conda install pip。这会将pip安装到您的venv目录。

  3. 找到您的anaconda目录,并找到实际的venv文件夹。它应该在类似的地方/anaconda/envs/venv_name/

  4. 进行安装新软件包/anaconda/envs/venv_name/bin/pip install package_name

现在,这应该可以使用该虚拟环境的pip成功安装软件包!


2
bin文件夹的路径是否已更改?我不再在venv_name文件夹中看到它了吗?
杰克

刚刚尝试创建一个新的venv,看起来bin仍然在同一个地方。
风车

2
没有“ bin”文件夹,因此上述步骤有所帮助。我要添加的一件事是运行“哪个pip”有助于确定实际安装软件包的是哪个“ pip”,而“ pip冻结”给出了环境软件包中已安装的列表
Mykola

2
我有这样的情况,即使我的源代码被激活,但我的安装却不在环境中进行。它们安装在默认的python位置。
Saisumanth Gopisetty,

4
这个答案在很大程度上是:运行pip从康达ENV(无论是环境或没有),并安装要使用的软件包pip的畅达文件夹中的可执行文件(我的情况:AppData\Local\Continuum\anaconda3\Scripts
曼努埃尔·马丁内斯

80

所有您需要做的就是打开Anaconda Prompt并输入

pip install package-name

它将自动安装到anaconda环境,而无需使用

conda install package-name

由于某些conda软件包可能缺乏加班支持,因此需要使用pip进行安装,这是一种实现方法。

如果您在anaconda中安装了pip,则可以在jupyter笔记本中或与anaconda链接的python shell中运行以下命令

pip.main(['install', 'package-name'])

使用检查您的pip版本pip.__version__。如果是版本10.x.x或更高,请使用以下代码行安装python软件包

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

在jupyter笔记本中,您可以通过pip在单元格中安装python软件包。

!pip install package-name

或者您可以使用与蟒蛇相关的python版本

!python3.6 -m pip install package-name

6
您如何“打开Anaconda提示”
Thomas Browne

3
在Windows上,您必须使用搜索图标或在任务栏上找到的输入来搜索“ anaconda提示”,然后打开
sambeth

Mac上的@sambeth?
Parthapratim Neog

1
我认为关键是运行anaconda的pip,它位于anaconda全局或特定环境下。
matanster,

2
这个答案是不正确的。问题的全部重点是有时它不会安装到环境中。它在全球安装。为防止这种情况,您需要先conda install pip在环境中运行以确保您使用的是本地版本的pip。
peastman

33

我通过以下方式解决了这个问题:

如果您有一个非conda点作为默认pip,但conda python是您的默认python(如下所示)

>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python

然后,不仅可以调用 pip install <package>,还可以将模块标志-m与python一起使用,以便它使用anaconda python进行安装

python -m pip install <package>

这会将软件包安装到anaconda库目录,而不是与(非anaconda)pip关联的库目录。


3
这应该是答案。在Windows上完美运行。
Geordie

9

如果在创建conda环境时未添加点子

conda create -n env_name pip

也没有在环境中安装点子

source activate env_name
conda install pip

那么您获得的唯一点是系统点,它将在全球范围内安装软件包。

正如您在此问题中看到的那样,即使执行了上述任何一个过程,conda环境中pip的行为仍然是不确定的。

为了确保使用conda环境中安装的pip而不需要输入longy /home/username/anaconda/envs/env_name/bin/pip,我编写了一个shell函数:

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

希望这对您有帮助。


8

这对我有用(请参阅链接的图像)

  1. 打开水蟒
  2. 在主页下方的左侧窗格中选择环境
  3. 在所选位置的右侧和“搜索环境”栏下方,您应该看到base(root)。点击它
  4. 会出现一个指向右边的三角形,单击它,选择一个“ open terminal”
  5. 在此处使用常规的pip install命令。无需指向环境/路径

供将来参考,如果碰巧已经满足要求,则可以找到软件包要下载到的文件夹。如果您在终端中向上滚动,则可以看到它。它应显示为:需求已经满足,然后是路径

[ 点安装anaconda]


3

对于那些希望使用pip在conda中安装少量软件包的人,然后使用,

sudo $(which pip) install <instert_package_name>

为我工作。

说明

无论如何,对我而言,这似乎which pip是找到您所在位置的可靠途径。但是,使用时sudo,这似乎会重定向路径或以其他方式破坏路径。

使用$(which pip)execute可以独立sudo于命令或任何命令执行此操作,类似于/home/<username>/(mini)conda(3)/envs/<env_name>/pip在Linux中运行。这是因为$()单独运行,并且文本输出已添加到外部命令。


3

以上所有答案主要基于virtualenv的使用。我刚刚安装了anaconda3,没有安装任何virtualenv。因此,我找到了一个更好的替代方法,而不必担心创建virtualenv。

如果您在Linux中安装了许多pip和python版本,则首先运行以下命令以列出所有已安装的pip路径。

点子在哪里

您将得到类似这样的输出。

点:/ usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

复制要用于安装软件包的pip路径,并/home/prabhakar/anaconda3/bin/pip在以下命令中进行sudo替换后将其粘贴。

须藤/home/prabhakar/anaconda3/bin/pip安装<package-name>

这对我来说效果很好。如果您在安装时遇到任何问题,请发表评论。


3

如果您使用的是Windows操作系统,请打开Anaconda Prompt并输入activate yourenvname

如果您使用的是Mac或Linux OS,请打开“ 终端”,然后键入source activate yourenvname

yourenvname 这是您想要在其中安装pip软件包的环境

输入上述命令后,您必须看到您的环境名称已从更改base为您键入的环境yourenvname在控制台输出中(这意味着您现在处于所需的环境上下文中)

然后,您需要做的就是普通pip install命令,例如pip install yourpackage

这样,pip软件包将安装在您的Conda环境中


3

python -m pip install Pillow

将使用通过激活的当前Python的点

source activate shrink_venv


3

取决于您如何配置PATH环境变量。当您的shell将呼叫解析为pip时,它将找到第一个bin?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

确保anaconda安装中的bin文件夹位于/ usr / lib之前(取决于您安装pip的方式)。举个例子:

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

我们可以看到djangorestframework已安装在我的测试环境中,但是如果我检查一下基础:

(base) borja@xxxx:~$ conda list | grep django

它是空的。

我个人喜欢使用.pam_environment处理我的所有PATH配置,下面是一个示例:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

多一通。安装pip的方式可能会产生问题:

  • 您应该使用:conda install pip->用pip安装的新软件包将被添加到conda列表中。

  • 不应该使用:sudo apt install python3- pip- >新软件包将不会添加到conda列表中(因此不受conda管理),但是您仍然可以使用它们(冲突的可能性)。


多来一顿。安装pip的方式可能会产生问题:-您应该使用:conda install pip->将随pip安装的新软件包添加到conda列表中。-您不应该使用:sudo apt install python3-pip->新软件包不会被添加到conda列表中(因此没有被管理),但是您仍然可以使用它们(冲突的可能性)。
BorjaEst

大家好:)我如何删除bin文件夹,例如/usr/lib在运行时它位于anaconda bin文件夹之前whereis pip
Lenn

尝试sudo apt remove python3-pip从Linux发行版中删除点子,然后在conda环境中使用:conda install -c anaconda pip
BorjaEst

2

我在anaconda上安装非conda软件包时遇到问题,我在这里按照最喜欢的答案进行,但操作不顺利(也许是因为我的anaconda位于F目录中,而env创建于C中,而bin文件夹未创建,我不知道,但是没有用。

根据已经安装了anaconda pip(可以conda list在anaconda提示符下使用命令“ ” 找到),但是没有安装pip软件包,所以这就是我所做的,我再次安装了pip,然后pip安装了该软件包。

conda install pip
pip install see

see 是非conda程序包。


2

好吧,我尝试了上述所有方法。没有人为我工作。以下为我工作:

  1. 激活您的环境
  2. https://pypi.org/simple/ / 手动下载.whl软件包
  3. 在激活环境的情况下,从命令行导航到您从命令行下载.whl的文件夹
  4. 执行:pip install package_name_whatever.whl

1

如果你希望有一个畅达的安装。只需从PATH变量中删除所有其他python路径即可。

仅离开:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

这样您就可以使用pip install *,它将直接安装到conda安装中。


-1

只是activate shrink_venv也会做。我尝试创建新环境,但是我的conda安装不允许我一开始就使用source。


source如果您使用的是Windows,则不需要一开始就
-KWx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.