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
对于遇到这种情况的其他人,我发现这是最直接的解决方案:
润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成功安装软件包!
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)
小智 13
这对我有用(参考图片链接)
为了将来参考,如果您碰巧已经满足了某个要求,您可以找到您的软件包下载到的文件夹。如果您在终端中向上滚动,您可以看到它。它应该是这样的:需求已经满足,然后是路径
[]
如果在创建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)
希望这对你有所帮助.
我通过以下方式解决了这个问题:
如果您有一个非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关联的库目录。
我在这里看到了很多好的答案,但我仍然想分享对我有用的答案,特别是如果你从 pip 时代切换到 conda 时代。接下来,您可以使用conda
和来安装任何软件包pip
。
背景
每次创建新的 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)
对于那些希望使用 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 中运行。这是因为$()
它是单独运行的,并且文本输出添加到了外部命令中。
归档时间: |
|
查看次数: |
196537 次 |
最近记录: |