Conda: instalacja / aktualizacja bezpośrednio z github

112

Czy mogę zainstalować / zaktualizować pakiety z GitHub przy użyciu Conda ?

Na przykład za pomocą pipmogę zrobić:

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

zainstalować scrappybezpośrednio z masteroddziału w GitHub. Czy mogę zrobić coś równoważnego z condą?

Jeśli nie jest to możliwe, czy miałoby sens instalowanie pip z conda i zarządzanie takimi lokalnymi instalacjami za pomocą pip?

Amelio Vazquez-Reina
źródło

Odpowiedzi:

74

Jest to teraz lepsze wsparcie conda-env. Możesz teraz na przykład:

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"

Nadal wywołuje pip pod osłonami, ale teraz możesz ujednolicić specyfikacje pakietów conda i pip w jednym environment.ymlpliku.

Jeśli chcesz zaktualizować środowiska korzeniowego z tego pliku, trzeba by zapisać to do pliku (na przykład environment.yml), a następnie uruchomić komendę: conda env update -f environment.yml.

Bardziej prawdopodobne jest, że zechcesz utworzyć nowe środowisko:

conda env create -f environment.yml (zmieniono zgodnie z oczekiwaniami w komentarzach)

Aron Ahmadia
źródło
Jak zainstalować wymagania z tego środowiska w środowisku głównym?
płyty grzejne
@hobs - zredagowałem odpowiedź, aby odpowiedzieć na Twoje pytanie.
Aron Ahmadia
1
To rzeczywiście conda env create -f environment.yml, z flaga oznacza . conda create-f--force
Perfi
1
Czy jest to gdzieś udokumentowane?
guilhermecgs
1
@Perfi, moja pomyłka Myślałam, sugerując, że -fw conda env createmowa życie, a nie o conda create, mój błąd, że nie uważnie czytać.
Będzie
103

Odpowiedzi są nieaktualne. Po prostu musisz zainstalować conda pip i git. Następnie możesz normalnie używać pip:

  1. Aktywuj swoje środowisko Conda source activate myenv

  2. conda install git pip

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

Gabriel Fair
źródło
4
Oprócz tego musisz użyć pip, który znajduje się w twoich środowiskach, tak jak w moim przypadku pip, którego użyłem, to "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip". Ten pip pojawia się po wykonaniu instalacji Conda. Możesz dołączyć ten bin dir do swojej $ PATH.
faizan
1
czy zainstalowany pakiet jest tylko w mastergałęzi po tym? A jeśli chciałbym przetestować mój PR z oddziału przed połączeniem się z master?
Mymozaaa
1
@AntonAndreev specyfikacja obsługuje zarówno git+giti git+https, jak i inne. Jednak wszystkie przykłady specyfikacji pokazują a, .gitgdy określa się gałąź.
merv
4
Wiele z nich jest już w PO (przy użyciu pip install). Pytanie brzmi, jak to zrobić conda bezpośrednio , czego udziela górna odpowiedź.
Amelio Vazquez-Reina
29

condanie obsługuje tego bezpośrednio, ponieważ instaluje z plików binarnych, podczas gdy instalacja git byłaby ze źródła. conda buildobsługuje receptury zbudowane z git. Z drugiej strony, jeśli wszystko, co chcesz zrobić, to być na bieżąco z najnowszymi i najlepszymi pakietami, użycie pip wewnątrz Anacondy jest w porządku lub alternatywnie, użyj setup.py developprzeciwko klonowi git.

asmeurer
źródło
A jeśli z pakietem jest powiązany plik binarny wydania?
Marcel Ramos
4

Znalazłem odniesienie do tego w kwestiach condas . Następujące elementy powinny teraz działać.

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git
mmann1123
źródło
Nie dodaje to niczego, czego nie ma w odpowiedzi @ AronAhmadia , co ogólnie ilustruje, że dostępnych jest wiele opcji w normalnym pliku Requirements.txt .
merv