Używanie potoku do instalowania pakietów w środowisku Anaconda

178

conda 4.2.13 MacOSX 10.12.1

Próbuję zainstalować pakiety z pipdo nowego środowiska (wirtualnego) utworzonego za pomocą programu anaconda. W dokumentach Anaconda jest napisane, że wszystko jest w porządku. Robi się to tak samo, jak w przypadku virtualenv.

Aktywuj środowisko, w którym chcesz umieścić program, a następnie zainstaluj program pip ...

Stworzyłem puste środowisko w Anancondzie w następujący sposób:

conda create -n shrink_venv

Aktywuj to:

source activate shrink_venv

W terminalu widzę, że pracuję w środowisku env (shrink_venv). Problem pojawia się, gdy próbuję zainstalować pakiet za pomocą pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

Widzę więc, że uważa, że ​​wymóg został spełniony dzięki pakietowi obejmującemu cały system. Wygląda więc na to, że środowisko nie działa poprawnie, zdecydowanie nie tak, jak zostało to opisane w dokumentacji. Czy ja tu robię coś złego?

Tylko uwaga, wiem, że możesz użyć conda installdo paczek, ale miałem problem z Poduszką od anakondy, więc chciałem ją zdobyćpip , a ponieważ doktorzy mówią, że jest w porządku.

Wyjście which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** UPDATE ** Widzę, że jest to dość powszechny problem. Odkryłem, że środowisko conda nie współgra dobrze z PYTHONPATH. System wydaje się zawsze szukać w lokalizacjach PYTHONPATH, nawet jeśli używasz środowiska Conda. Teraz zawsze unset PYTHONPATHkorzystam ze środowiska Conda i działa znacznie lepiej. Jestem na Macu.

jeffery_the_wind
źródło
9
Czy próbowałeś conda install pip?
językoznawstwo
4
czy możesz dodać wynik which -a pipdo swojego pytania?
cel
1
Czy masz PYTHONPATHzestaw zmiennych środowiskowych?
darthbith
1
miał podobny problem. Jawne używanie pip, które jest częścią Anacondy, wydawało się działać dla mnie.
Arsene Lupin
1
czy instalowanie rzeczy za pomocą pip i conda jest naprawdę bezpieczne? Pomyślałem, że możesz mieć problemy, takie jak brak wiedzy, którą wersję naprawić odinstalowanie ...
Charlie Parker

Odpowiedzi:

203

Dla innych, którzy napotkali taką sytuację, stwierdziłem, że jest to najprostsze rozwiązanie:

  1. Uruchom conda create -n venv_namei source activate venv_name, gdzie venv_namejest nazwa twojego wirtualnego środowiska.

  2. Biegnij conda install pip. Spowoduje to zainstalowanie pip w twoim katalogu venv.

  3. Znajdź katalog anaconda i znajdź rzeczywisty folder venv. Powinno być gdzieś /anaconda/envs/venv_name/.

  4. Zainstaluj nowe pakiety, wykonując /anaconda/envs/venv_name/bin/pip install package_name .

Powinno to teraz pomyślnie zainstalować pakiety przy użyciu pip!

Wiatrak
źródło
2
Czy binzmieniła się ścieżka do folderu? Nie widzę go już w venv_namefolderze?
Jack
Właśnie próbowałem utworzyć nowy venv, wygląda na binto, że nadal znajduje się w tym samym miejscu.
Windmill
2
Nie ma folderu „bin”, więc powyższe kroki pomogły. Jedną rzeczą, którą chciałbym dodać, jest uruchomienie „który pip” pomaga określić, który „pip” faktycznie instaluje pakiety, a „pip freeze” daje listę pakietów zainstalowanych w środowisku
Mykoła
2
Mam sytuację, w której chociaż moje źródło jest aktywne, moje instalacje nie pojawiają się w środowisku. Są instalowane w domyślnej lokalizacji języka Python.
Saisumanth Gopisetty
4
Ta odpowiedź jest w dużej mierze: Uruchom pipz Conda env (czy to środowisko lub nie) i zainstalować pakiet, który chcesz za pomocą pippliku wykonywalnego w folderze Conda (moja sprawa: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez
80

Wszystko, co musisz zrobić, to otworzyć Anaconda Prompt i wpisać

pip install package-name

Zainstaluje się automatycznie w środowisku anaconda bez konieczności użycia

conda install package-name

Ponieważ niektóre pakiety Conda mogą nie mieć obsługi w nadgodzinach, wymagana jest instalacja przy użyciu pip i jest to jeden ze sposobów na zrobienie tego

Jeśli masz zainstalowany pip w anaconda, możesz uruchomić następujące polecenie w notatniku jupyter lub w powłoce Pythona, która jest połączona z anacondą

pip.main(['install', 'package-name'])

Sprawdź swoją wersję pip z pip.__version__. Jeśli jest to wersja 10.x.xlub nowsza, zainstaluj pakiet Pythona z tą linią kodu

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

W swoim notatniku jupyter możesz w ten sposób instalować pakiety Pythona przez pip w komórce;

!pip install package-name

lub możesz użyć swojej wersji Pythona związanej z anacondą

!python3.6 -m pip install package-name
sambeth
źródło
6
jak "otworzyć znak zachęty Anacondy"
Thomas Browne
3
W systemie Windows musisz wyszukać 'anaconda prompt', używając ikony wyszukiwania lub danych wejściowych znalezionych na pasku zadań i otwórz
sambeth
@sambeth na Macu?
Parthapratim Neog
1
Myślę, że kluczem jest uruchomienie pip anakondy, który znajduje się pod globalnym lub określonym środowiskiem anakondy.
matanster
2
Ta odpowiedź jest nieprawidłowa. Cały problem polega na tym, że czasami nie instaluje się on w środowisku. Instaluje się na całym świecie. Aby temu zapobiec, musisz najpierw uruchomić conda install pipw środowisku, aby upewnić się, że używasz lokalnej wersji pip.
peastman
33

Rozwiązałem ten problem w następujący sposób:

Jeśli masz pip inny niż Conda jako domyślny pip, ale Conda Python jest domyślnym Pythonem (jak poniżej)

>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

Następnie zamiast po prostu wywoływać pip install <package>, możesz użyć flagi modułu -mz pythonem, aby używał anaconda python do instalacji

python -m pip install <package>

Spowoduje to zainstalowanie pakietu w katalogu biblioteki anaconda, a nie w katalogu biblioteki skojarzonym z (innym niż anaconda) pip

alex_danielssen
źródło
3
To powinna być odpowiedź. Działa doskonale w systemie Windows.
Geordie
9

Jeśli nie dodałeś pip podczas tworzenia środowiska Conda

conda create -n env_name pip

a także nie zainstalował pip w środowisku

source activate env_name
conda install pip

wtedy jedynym pip, jaki masz, jest pip systemowy, który zainstaluje pakiety globalnie.

Bus, jak widać w tym wydaniu , nawet jeśli wykonałeś jedną z powyższych procedur, zachowanie pip w środowisku Conda jest nadal niejasne.

Aby zapewnić korzystanie z pip zainstalowanego w środowisku Conda bez konieczności wpisywania długiego /home/username/anaconda/envs/env_name/bin/pip, napisałem funkcję powłoki:

# 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" "$@"
}

Mam nadzieję, że to ci pomoże.

Allen Ye
źródło
8

To właśnie zadziałało dla mnie (patrz link do obrazu)

  1. Otwórz Anacondę
  2. Wybierz opcję Środowiska w panelu po lewej stronie poniżej strony głównej
  3. Na prawo od miejsca, w którym wybrałeś i poniżej paska „środowiska wyszukiwania”, powinieneś zobaczyć podstawę (root). Kliknij na to
  4. Powinien pojawić się trójkąt skierowany w prawo, kliknij go i wybierz „otwórz terminal”
  5. Użyj tutaj zwykłego polecenia pip install. Nie ma potrzeby wskazywania środowiska / ścieżki

W przyszłości możesz znaleźć folder, do którego są pobierane pakiety, jeśli spełniasz już wymagania. Możesz to zobaczyć, przewijając terminal w górę. Powinien brzmieć mniej więcej tak: wymaganie już spełnione, a następnie ścieżka

[ pip install anaconda]

modatamoproblems
źródło
3

Dla tych, którzy chcą zainstalować niewielką liczbę pakietów w conda za pomocą pip, a następnie używają,

sudo $(which pip) install <instert_package_name>

pracował dla mnie.

Wyjaśnienie

W każdym razie wydaje mi się, że which pipjest to bardzo wiarygodne w znalezieniu ścieżki conda env pip do miejsca, w którym się znajdujesz. Jednak podczas używaniasudo wydaje się, że przekierowuje ścieżki lub w inny sposób to przerywa.

Użycie polecenia $(which pip)wykonuje to niezależnie od sudolub dowolnego polecenia i jest podobne do uruchamiania /home/<username>/(mini)conda(3)/envs/<env_name>/pipw systemie Linux. Dzieje się tak, ponieważ $()jest uruchamiany osobno, a wynik tekstowy jest dodawany do polecenia zewnętrznego.

Stoły Little Bobby
źródło
3

Wszystkie powyższe odpowiedzi opierają się głównie na wykorzystaniu virtualenv. Właśnie mam świeżą instalację anaconda3 i nie mam zainstalowanego w niej żadnego virtualenv. Tak więc znalazłem dla niego lepszą alternatywę, nie zastanawiając się nad stworzeniem virtualenv.

Jeśli masz wiele wersji pip i python zainstalowanych w systemie Linux, najpierw uruchom poniższe polecenie, aby wyświetlić wszystkie zainstalowane ścieżki pip.

whereis pip

Otrzymasz coś takiego jako wyjście.

pip: / usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

Skopiuj ścieżkę pip, której chcesz użyć do zainstalowania pakietu i wklej ją po zastąpieniu sudo /home/prabhakar/anaconda3/bin/pipw poniższym poleceniu.

sudo /home/prabhakar/anaconda3/bin/pipinstall<package-name>

U mnie to działało całkiem nieźle. Jeśli masz problem z instalacją, skomentuj.

Prabhakar Prasad
źródło
3

jeśli używasz systemu operacyjnego Windows, otwórz Anaconda Prompt i wpiszactivate yourenvname

A jeśli używasz systemu Mac lub Linux, otwórz Terminal i wpiszsource activate yourenvname

yourenvname tutaj jest żądane środowisko, w którym chcesz zainstalować pakiet pip

po wpisaniu powyższego polecenia musisz zobaczyć, że nazwa twojego środowiska została zmieniona z basena wpisane środowisko yourenvnamew wyniku konsoli (co oznacza, że ​​jesteś teraz w żądanym kontekście środowiska)

Wtedy wystarczy zwykłe pip installpolecenie nppip install yourpackage

W ten sposób pakiet pip zostanie zainstalowany w Twoim środowisku Conda

Code_Worm
źródło
3

python -m pip install Pillow

Użyje pip aktualnego Pythona aktywowanego za pomocą

source activate shrink_venv

intsco
źródło
3

Zależy od tego, jak skonfigurowałeś zmienną środowiskową PATH. Kiedy twoja powłoka rozpozna wywołanie pip, który będzie pierwszym koszem, który znajdzie?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

Upewnij się, że folder bin z instalacji anacondy znajduje się przed / usr / lib (w zależności od tego, jak zainstalowałeś pip). A więc przykład:

(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

Widzimy, że djangorestframework został zainstalowany w moim środowisku testowym, ale jeśli sprawdzę bazę:

(base) borja@xxxx:~$ conda list | grep django

To jest puste.

Osobiście lubię obsługiwać całą moją konfigurację PATH za pomocą .pam_environment , tutaj przykład:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

Jedna dodatkowa kometa. Sposób, w jaki instalujesz pip, może powodować problemy:

  • Powinieneś użyć: conda install pip -> nowe pakiety zainstalowane za pomocą pip zostaną dodane do listy conda.

  • Ci shodul NIE używać: sudo apt-pip zainstalować python3 -> Nowe pakiety nie zostaną dodane do listy Conda (więc nie są zarządzane przez Conda), ale nadal będzie w stanie z nich korzystać (szansa konfliktu).

BorjaEst
źródło
Jedna dodatkowa kometa. Sposób, w jaki instalujesz pip może powodować problemy: - Powinieneś użyć: conda install pip -> nowe pakiety zainstalowane za pomocą pip zostaną dodane do listy conda. - NIE POWINIENEŚ używać: sudo apt install python3-pip -> nowe pakiety nie będą dodawane do listy conda (więc nie będą zarządzane), ale nadal będziesz mógł z nich korzystać (ryzyko konfliktu).
BorjaEst
cześć wszystkim :) Jak mogę usunąć folder bin, tak jak /usr/libw przypadku, gdy jest on przed moim folderem bin anaconda podczas pracy whereis pip?
Lenn
Spróbuj sudo apt remove python3-pipusunąć PIP z dystrybucji Linuksa, a następnie w środowisku Conda używasz: conda install -c anaconda pip.
BorjaEst
2

Miałem problem z instalacją pakietu non conda na anakondzie, podążałem za najbardziej lubianą odpowiedzią tutaj i nie poszło dobrze (może dlatego, że moja anakonda jest w katalogu F, a utworzony env był w C, a folder bin nie został utworzony, Nie mam pojęcia, ale nie zadziałało).

Według anaconda pip jest już zainstalowany (co można znaleźć za pomocą polecenia " conda list" w zachęcie anacondy), ale pakiety pip nie były instalowane, więc oto co zrobiłem, ponownie zainstalowałem pip, a następnie pip zainstalowałem pakiet.

conda install pip
pip install see

see jest pakietem non-conda.

Abhijeet sinha
źródło
2

Cóż, wypróbowałem wszystkie powyższe metody. Żaden nie pracował dla mnie. Pracowały dla mnie:

  1. Aktywuj swoje środowisko
  2. Pobierz pakiet .whl ręcznie ze strony https://pypi.org/simple/ /
  3. Przejdź do folderu, do którego pobrałeś plik .whl z wiersza poleceń z aktywowanym środowiskiem
  4. perform: pip install nazwa_pakietu_ cokolwiek.whl
MGLondon
źródło
1

Jeśli TYLKO chcesz mieć instalację Conda. Po prostu usuń wszystkie inne ścieżki Pythona ze zmiennej PATH.

Tylko pozostawiając:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

Pozwala to po prostu użyć pip install *i zainstaluje się bezpośrednio w instalacji Conda.

moto
źródło
-1

Po prostu się activate shrink_venvnada. Próbowałem stworzyć nowe środowisko i moja instalacja Conda nie pozwala mi na początku korzystać ze źródeł.

Elisavet Fakou
źródło
Nie musisz sourcena początku, jeśli korzystasz z systemu Windows
KWx