Conda:直接从GitHub安装/升级

186

我能否使用conda从GitHub安装/升级包?

例如,使用pip可以执行以下操作:

pip install git+git://github.com/scrappy/scrappy@master

我希望能够直接从GitHub的master分支安装scrappy。在conda中是否有相同的方法?

如果不可能,那么通过conda安装pip,并使用pip管理这些本地安装是否可行?

5个回答

163

答案已过时。您只需conda安装pip和git,然后就可以正常使用pip:

  1. 激活conda环境 source activate myenv

  2. conda install git pip

  3. pip install git+git://github.com/scrappy/scrappy@master


5
除此之外,您需要使用位于您的环境中的pip,就像在我的情况下我使用的pip是“/home/ubuntu/anaconda3/envs/tensorflow_p36/bin/pip”一样。 这个pip是在您执行conda安装之后出现的。 您可以将这个bin目录添加到$PATH中。 - faizan
1
安装的软件包只在“master”分支上吗?如果我想在合并到主分支之前从分支中测试我的PR,该怎么办? - Mymozaaa
1
@AntonAndreev 规范 支持 git+gitgit+https,以及其他协议。然而,在所有规范示例中,指定分支时都会显示 .git - merv
9
大部分内容已经可以通过pip install来安装。这个问题是在询问如何直接使用conda进行安装,而最佳答案提供了相关方法。 - Amelio Vazquez-Reina

131

现在,通过conda-env,对此提供了更好的支持。例如,您现在可以执行以下操作:

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - "--editable=git+https://github.com/pythonforfacebook/facebook-sdk.git@8c0d34291aaafec00e02eaa71cc2a242790a0fcc#egg=facebook_sdk-master"

现在它仍然在背后调用pip,但是你可以将conda和pip包规范统一到一个单独的environment.yml文件中。

如果您想使用此文件更新根环境,则需要将其保存到文件中(例如environment.yml),然后运行命令:conda env update -f environment.yml

更有可能的情况是您想创建新的环境:

conda env create -f environment.yml(已根据评论进行更改)


1
实际上是 conda env create -f environment.yml,使用 conda create 命令时,-f 标志代表 --force - Dominik Stańczak
1
它有文档记录吗? - guilhermecgs
这里有一些文档链接,但它并没有解释pip部分(只是给了一个例子),但它相当容易理解。您还可以将现有的conda环境导出为yaml格式(包括pip安装)。 - drevicko
1
@Perfi,我的错,我以为你建议 conda env create 中的 -f 是指强制操作,而不是 conda create 的参数。我没有仔细阅读,所以犯了错误。 - Will
如果您需要从子目录安装,请参考以下链接:https://dev59.com/N2Yr5IYBdhLWcg3wkbFM 例如: "--editable=git+https://github.com/poleguy/pyshark.git@7fc7fbb400080868291bd7268676f7513f898504#egg=src&subdirectory=src" - poleguy
显示剩余6条评论

31

conda不支持直接安装源码,因为它是基于二进制安装的。然而,conda build可以构建从git下载的recipes。如果您只想保持一个软件包的最新版本,使用Anaconda内部的pip或使用setup.py develop与git克隆相结合也是不错的选择。


1
如果您的软件包有与之关联的发布二进制文件,该怎么办? - mr148

29

我在Conda问题中找到了相关参考。以下内容现在应该可行。

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git

4
这并没有额外添加任何内容,与@AronAhmadia的答案中已有的内容相同,该答案更全面地说明了普通requirements.txt中的许多选项可用。 - merv
7
我认为人们忘记了有多少新手使用 stack overflow。提供最简单的例子是很重要的。 - mmann1123
1
如果您不将pip作为一个依赖项单独加入,conda会抱怨。此外,还可以在这里找到使用conda和pip的其他有用示例:https://github.com/conda/conda/blob/main/tests/conda_env/support/advanced-pip/environment.yml - thomaskeefe

0

如果你不知道其他人在做什么,那么这就是没有冗长的单行版本:

# inside a conda env
pip install git+https://github.com/Stonesjtu/pytorch_memlab.git@master

后半部分只是从GitHub Repo中复制粘贴的https-URL,附加了一个@branch后缀。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接