conda 4.2.13 MacOSX 10.12.1
我正在尝试将包从pip
安装到使用anaconda创建的新环境(虚拟)。 In the Anaconda docs它说完全没问题。它的执行方式与virtualenv相同。
激活您要放置程序的环境,然后pip安装程序......
我在Ananconda中创建了一个空的环境:
conda create -n shrink_venv
激活它:
source activate shrink_venv
然后我可以在终端中看到我在我的env (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枕头问题,所以我希望从pip
获取,因为文档说没关系。
which -a pip
的输出:
/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip
**更新**
我觉得这是很常见的问题。我发现conda env与PYTHONPATH并不是很好。即使您正在使用conda环境,系统似乎总是在PYTHONPATH位置查看。现在,我总是在使用conda环境时运行unset PYTHONPATH
,并且它运行得更好。我在Mac上。
答案 0 :(得分:81)
对于遇到这种情况的其他人,我发现这是最直接的解决方案:
运行conda create -n venv_name
和source activate venv_name
,其中venv_name
是您的虚拟环境的名称。
运行conda install pip
。这将把pip安装到你的venv目录。
找到您的anaconda目录,找到实际的venv文件夹。它应该在/anaconda/envs/venv_name/
之类的地方。
通过/anaconda/envs/venv_name/bin/pip install package_name
安装新软件包。
现在应该使用该虚拟环境的pip成功安装软件包!
答案 1 :(得分:46)
您只需打开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.__version__
检查您的点子版本。如果它是版本10.x.x
或更高版本,那么使用这行代码安装你的python包
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])
在你的jupyter笔记本中,你可以通过这样的单元格中的pip安装python包;
!pip install package-name
或者您可以使用与anaconda相关联的python版本
!python3.6 -m pip install package-name
答案 2 :(得分:6)
如果在创建conda环境时没有添加pip
conda create -n env_name pip
并且还没有在环境中安装pip
source activate env_name
conda install pip
然后你得到的唯一点是系统点,它将全局安装包。
你可以在这个issue中看到的总线,即使你做了上面提到的任何一个过程,在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" "$@"
}
希望这对你有所帮助。
答案 3 :(得分:4)
对于那些希望使用pip在conda中安装少量软件包然后使用
的人sudo $(which pip) install <instert_package_name>
为我工作。
<强> Explainaton 强>
对我来说,似乎which pip
非常可靠地找到你所在的conda env pip路径。但是,当使用sudo
时,这似乎会重定向路径或以其他方式破坏它。
使用$(which pip)
独立于sudo
或任何命令执行此操作,类似于在Linux中运行/home/<username>/(mini)conda(3)/envs/<env_name>/pip
。这是因为$()
单独运行,文本输出添加到外部命令。
答案 4 :(得分:4)
python -m pip install Pillow
将使用
激活的当前Python的点 source activate shrink_venv
答案 5 :(得分: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管理),但是您仍然可以使用它们(发生冲突的可能性)。
答案 6 :(得分:2)
我在anaconda上安装非conda软件包时遇到了问题,我在这里听到了最受欢迎的答案并且它没有顺利进行(也许是因为我的anaconda在F目录中并且env创建在C和bin中文件夹没有创建,我不知道,但它没有工作)。
根据anaconda pip已安装(在anaconda提示下使用命令&#34; conda list
&#34;找到),但pip包没有安装,所以这就是我做的,我再次安装pip,然后pip安装包。
conda install pip
pip install see
see
是一个非conda包。
答案 7 :(得分:2)
我尝试了上述所有方法。没有人为我工作。以下对我有用:
答案 8 :(得分:1)
以上所有答案主要基于virtualenv的使用。我刚刚安装了anaconda3并且没有安装任何virtualenv。所以,我找到了一个更好的替代方案,而不用担心创建virtualenv。
如果您在linux中安装了许多pip和python版本,那么首先运行以下命令列出所有已安装的pip路径。
whereis pip
你会得到类似的东西作为输出。
pip:/ usr / bin / pip
/home/prabhakar/anaconda3/bin/pip
/usr/share/man/man1/pip.1.gz
复制要用于安装软件包的pip路径,并在sudo替换下面命令中的/home/prabhakar/anaconda3/bin/pip
后粘贴它。
sudo
/home/prabhakar/anaconda3/bin/pip
安装<package-name>
这对我来说非常好。如果您在安装时遇到任何问题,请发表评论。
答案 9 :(得分:1)
如果您使用的是Windows操作系统,请打开 Anaconda提示,然后输入activate yourenvname
如果您使用的是Mac或Linux操作系统,请打开 Terminal (终端)并输入source activate yourenvname
yourenvname
是您想要在其中安装pip软件包的环境
在键入上述命令后,您必须在控制台输出中看到您的环境名称已从base
更改为您键入的环境yourenvname
(这意味着您现在处于所需的环境上下文中)
然后您需要做的就是普通的pip install
命令,例如pip install yourpackage
这样做,pip软件包将安装在您的Conda环境中
答案 10 :(得分:0)
我在这里看到了很多很好的答案,但仍然想分享我的那些对我有用的答案,尤其是当您从 pip-era 切换到 conda-era 时。按照此操作,您可以同时使用 conda
和 pip
安装任何软件包。
背景
每次创建新的 conda 环境时默认安装 Pip
# this installs 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
这使您可以灵活地在 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
答案 11 :(得分:0)
卸载重复的python安装。只需保留 anaconda 并使用此处指定的所需 Python 版本创建一个 env:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html。然后你的 python 和 pip 版本会随着你在 envs 之间切换而改变。
答案 12 :(得分:0)
我知道最初的问题是关于MacOS下的conda。但我想分享一下我在Ubuntu 20.04上的经验。
就我而言,该问题是由于在~/.bashrc
:alias pip='/usr/bin/pip3'
中定义的别名引起的。该别名优先于其他所有内容。
因此,出于测试目的,我删除了运行unalias pip
命令的别名。然后,活动conda环境中相应的pip
已正确执行。
同一问题适用于python
命令。
答案 13 :(得分:0)
这对我有用(请参阅链接的图像)
供将来参考,如果碰巧已经满足要求,则可以找到软件包下载到的文件夹。如果您在终端中向上滚动,则可以看到它。它应显示为:要求已经满足,然后是路径
[]
答案 14 :(得分:0)
我通过以下方式解决了这个问题:
如果您将非conda点作为默认点,但是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关联的库目录中。
答案 15 :(得分:0)
activate shrink_venv
也可以。我尝试创建新的环境,但是我的conda安装不允许我一开始就使用source。
答案 16 :(得分:0)
如果您仅想要进行conda安装。只需从PATH变量中删除所有其他python路径。
仅离开:
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin
这允许您只使用pip install *
,它将直接安装到您的conda安装中。