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

jef*_*ind 108 python environment pip anaconda

conda 4.2.13 MacOSX 10.12.1

我正在尝试将包安装pip到使用anaconda创建的新环境(虚拟). 在Anaconda文档中,它说完全没问题.它的执行方式与virtualenv相同.

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

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

conda create -n shrink_venv
Run Code Online (Sandbox Code Playgroud)

激活它:

source activate shrink_venv
Run Code Online (Sandbox Code Playgroud)

然后我可以在终端看到我在我的环境中工作(shrink_venv).当我尝试使用pip以下命令安装软件包时,问题就出现了:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

所以我可以看到它认为从系统范围的包中满足要求.所以看起来环境工作不正常,绝对不像文档中说的那样.我在这里做错了吗?

只是一个注意事项,我知道你可以conda install用于包裹,但我从anaconda的Pillow有一个问题,所以我想从中得到它pip,因为文档说这很好.

产量which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip
Run Code Online (Sandbox Code Playgroud)

**更新**我认为这是非常常见的问题.我发现conda env与PYTHONPATH的效果不佳.即使您正在使用conda环境,系统似乎总是在PYTHONPATH位置查看.现在,我总是unset PYTHONPATH在使用conda环境时运行,并且它运行得更好.我在Mac上.

Win*_*ill 124

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

  1. conda create -n venv_namesource activate venv_name,这里venv_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成功安装软件包!

  • 当我在该环境中运行“pip”时,是否有办法让与当前 conda 环境关联的 pip 无缝运行?(而不是按照步骤 4 的要求指示完整路径)。 (9认同)
  • `bin` 文件夹的路径是否已更改?我不再在 `venv_name` 文件夹中看到它了吗? (7认同)
  • 我不需要第 3 步或第 4 步,因为我检查了“which pip”并且它已经指向正确的垃圾箱 (4认同)
  • 没有“bin”文件夹,因此上述步骤有所帮助。我要添加的一件事是运行 'which pip' 有助于确定哪个 'pip' 实际正在安装软件包,而 'pip freeze' 提供了已安装在环境软件包中的列表 (3认同)
  • 这个答案主要是:从conda env(无论是否是环境)运行`pip`,然后使用conda文件夹中的`pip`可执行文件安装所需的软件包(我的情况是:`AppData \ Local \ Continuum \)。 anaconda3 \ Scripts`) (3认同)
  • @Jack Anaconda 4.8.3 中的 python 3.6 环境中不存在“bin”文件夹。Manual Martinez 的注释有效,因为它包含“pip.exe”文件。因此,如果“venv_name”文件夹中没有“bin”文件夹,则可以将步骤 4 的命令替换为:“.../Anaconda3/envs/venv_name/Scripts/pip install package_name”。 (3认同)
  • 我的情况是,即使我的源被激活,我的安装也没有在环境中发生。它们安装在默认的 python 位置。 (2认同)
  • 在 Mac M1 上,路径可能是“/opt/anaconda3/envs/env-name/bin/pip” (2认同)

sam*_*eth 61

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

pip install package-name
Run Code Online (Sandbox Code Playgroud)

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

conda install package-name
Run Code Online (Sandbox Code Playgroud)

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

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

pip.main(['install', 'package-name'])
Run Code Online (Sandbox Code Playgroud)

检查你的pip版本pip.__version__.如果是版本10.x.x或更高版本,则使用此行代码安装python包

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])
Run Code Online (Sandbox Code Playgroud)

在你的jupyter笔记本中,你可以通过pip在这个单元格中安装python包;

!pip install package-name
Run Code Online (Sandbox Code Playgroud)

或者您可以使用与anaconda相关联的python版本

!python3.6 -m pip install package-name
Run Code Online (Sandbox Code Playgroud)

  • 这个答案是不正确的。问题的重点是有时它*不*安装到环境中。它在全球范围内安装。为了防止这种情况,您需要首先在环境中运行“conda install pip”,以确保您使用的是本地版本的 pip。 (13认同)
  • 你怎么"打开Anaconda提示" (5认同)
  • 在Windows上,您必须使用搜索图标或在任务栏上找到的输入来搜索“ anaconda提示”,然后打开 (2认同)
  • 我认为关键是运行你的 anaconda 的 pip,它位于你的 anaconda 全局或特定环境下。 (2认同)

小智 13

这对我有用(参考图片链接)

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

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

[pip 安装蟒蛇]


int*_*sco 10

python -m pip install Pillow

将使用激活的当前 Python 的 pip

source activate shrink_venv


All*_* Ye 8

如果在创建conda环境时没有添加pip

conda create -n env_name pip
Run Code Online (Sandbox Code Playgroud)

并且没有在环境中安装pip

source activate env_name
conda install pip
Run Code Online (Sandbox Code Playgroud)

那么你得到的唯一点是系统点,它将全局安装包.

你可以在这个问题中看到总线,即使你做了上面提到的任何一个过程,在conda环境中pip的行为仍然是未定义的.

为了确保使用安装在conda环境中的pip而不必输入冗长/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" "$@"
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.


ale*_*sen 6

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

如果您有一个非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
Run Code Online (Sandbox Code Playgroud)

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

python -m pip install <package>
Run Code Online (Sandbox Code Playgroud)

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

  • 这应该是答案。在 Windows 上完美运行。 (9认同)
  • 绝对,这应该是答案。其他解决方案不起作用,而这个解决方案更加优雅。 (5认同)
  • 是的,这是最干净、最有效的答案。适用于 Ubuntu。 (2认同)
  • 谢谢,它在 Mac 上运行得非常好,我已经为此苦苦挣扎了几个小时。 (2认同)

Abu*_*oeb 6

我在这里看到了很多好的答案,但我仍然想分享对我有用的答案,特别是如果你从 pip 时代切换到 conda 时代。接下来,您可以使用conda和来安装任何软件包pip

背景

  • PIP - 仅 Python 包管理器
  • Conda - 适用于多种语言(包括 Python)的包和环境管理器

每次创建新的 conda 环境时默认安装 Pip

# install pip for your newly created environment
conda create -n my_new_env pip 

# activate your new conda environment
conda activate my_new_env

# now you can install any packages using both conda and pip
conda install package_name

#or
pip install package_name
Run Code Online (Sandbox Code Playgroud)

这使您可以灵活地在 conda 环境中安装任何软件包,即使它们在 conda 中不可用(例如 wordcloud)

conda activate my_new_env

# will not work as wordcloud is not available in conda
conda install wordcloud

# works fine
pip install wordcloud
Run Code Online (Sandbox Code Playgroud)


Lit*_*les 5

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

sudo $(which pip) install <instert_package_name>
Run Code Online (Sandbox Code Playgroud)

为我工作。

解释

无论如何,对我来说,这which pip对于找到您所在位置的 conda env pip 路径非常可靠。然而,当使用 时sudo,这似乎会重定向路径或以其他方式破坏它。

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