Використання Pip для встановлення пакетів у Anaconda Environment


178

conda 4.2.13 MacOSX 10.12.1

Я намагаюся встановити пакети із pipсвіжого середовища (віртуального), створеного за допомогою анаконди. У документах Anaconda сказано, що це прекрасно. Це робиться так само, як і для virtualenv.

Активуйте середовище, куди ви хочете поставити програму, а потім встановіть програму ...

Я створив порожнє середовище в Анаконкоді так:

conda create -n shrink_venv

Активуйте його:

source activate shrink_venv

Тоді я можу побачити в терміналі, що я працюю в оточенні (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для пакунків, але у мене виникла проблема з Подушкою від анаконди, тому я хотів її отримати pip, і оскільки документи кажуть, що це добре.

Вихід which -a pip:

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

** ОНОВЛЕННЯ ** Я бачу, це досить поширене питання. Що я виявив - це те, що conda env не грає добре з PYTHONPATH. Здається, система завжди шукає місця в PYTHONPATH, навіть коли ви використовуєте конда-середовище. Тепер я завжди unset PYTHONPATHпрацюю, коли використовую конда-середовище, і це працює набагато краще. Я на mac.


9
Ви пробували conda install pip?
туга

4
Ви можете додати висновок which -a pipсвого запитання, будь ласка?
чел

1
У вас встановлена PYTHONPATHзмінна середовище?
darthbith

1
мали подібне питання. Явно використання піп, який є частиною Anaconda, здавалося, працює для мене.
Арсен Люпін

1
чи справді безпечно встановлювати речі за допомогою pip та conda? Я думав, що ти можеш уникнути проблем, як-от не знаючи, яку версію виправити видалення ...
Чарлі Паркер

Відповіді:


203

Для інших, хто зіткнувся з цією ситуацією, я вважав це найбільш простим рішенням:

  1. Запустіть conda create -n venv_nameі source activate venv_name, де venv_nameназва вашого віртуального середовища.

  2. Біжи conda install pip. Це дозволить встановити pip у ваш каталог venv.

  3. Знайдіть свій каталог анаконди та знайдіть фактичну папку venv. Це має бути десь схоже /anaconda/envs/venv_name/.

  4. Встановіть нові пакети, виконавши /anaconda/envs/venv_name/bin/pip install package_name.

Тепер це має успішно встановити пакети, використовуючи піп цього віртуального середовища!


2
Чи binзмінився шлях для папки? Я більше не бачу його в venv_nameпапці?
Джек

Щойно спробував створити новий вентилятор, схоже, що binвсе ще на тому самому місці.
Вітряк

2
Не було папки "бін", тому допомогли описані вище кроки. Я хотів би додати одне, що працює: «який піп» допомагає визначити, який «pip» насправді встановлює пакети, а «pip freeze» дає список встановлених у середовищі пакетів
Микола

2
У мене є ситуація, коли, навіть якщо моє джерело активоване, мої установки не відбуваються в навколишньому середовищі. Вони встановлюються у стандартному розташуванні python.
Saisumanth Gopisetty

4
Відповідь на це питання в значній мірі: Run pipвід Вашого Конда окр (будь то середовище чи ні), і встановіть пакет , який ви хочете з допомогою pipвиконуваного файлу в папці Конда (мій випадок: AppData\Local\Continuum\anaconda3\Scripts)
Мануель Мартінес

80

Все, що вам потрібно зробити, - це відкрити підказку Anaconda та набрати

pip install package-name

Він автоматично встановиться в анакондне середовище без використання

conda install package-name

Оскільки в деяких пакетах conda може бути відсутнім підтримку понаднормово, його потрібно встановити за допомогою pip, і це один із способів зробити це

Якщо у вас встановлено pip в анаконді, ви можете виконати наступне в зошиті з юпітером або в оболонці python, яка пов'язана з анаконда

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

Перевірте свою версію файлу за допомогою pip.__version__. Якщо це версія 10.x.xчи вище, то встановіть ваш пакет python із цим рядком коду

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

У своєму зошиті з юпітером ви можете встановити пакети python через pip у комірці таким чином;

!pip install package-name

або ви можете скористатися версією python, пов'язаною з анакондою

!python3.6 -m pip install package-name

6
як ви "відкриваєте підказку Anaconda"
Томас Браун

3
У Windows потрібно шукати "anaconda prompt" за допомогою значка пошуку або вводу, знайденого на панелі завдань, і відкрити
sambeth


1
Я думаю, що ключовим є запуск вашої анаконди, яка сидить у вашому анаконда глобальному чи конкретному середовищі.
matanster

2
Ця відповідь невірна. Вся суть питання в тому, що іноді він не встановлюється в навколишнє середовище. Він встановлюється у всьому світі. Щоб цього не допустити, спочатку потрібно запустити conda install pipвсередину середовища, щоб переконатися, що ви використовуєте локальну версію pip.
торф

33

Я вирішив цю проблему наступним чином:

Якщо у вас стандартний піп за умовчанням, ви маєте non-conda pip, але conda 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, щоб він використовував анаконду python для встановлення

python -m pip install <package>

Це встановлює пакет в каталог бібліотеки анаконда, а не в каталог бібліотеки, пов'язаний з (не анаконда) піп


3
Це має бути відповіддю. Відмінно працює в Windows.
Джорді

9

Якщо ви не додали pip під час створення середовища conda

conda create -n env_name pip

а також не встановлював pip всередині середовища

source activate env_name
conda install pip

то єдиний отриманий вами піп - це системний pip, який встановлюватиме пакети в усьому світі.

Автобус, як ви бачите в цьому випуску , навіть якщо ви виконували будь-яку з вищезгаданих процедур, поведінка пип у середовищі конди все ще є невизначеною.

Щоб переконатися у використанні піп, встановленого всередині конда-середовища, без необхідності вводити тривалий /home/username/anaconda/envs/env_name/bin/pip, я написав функцію оболонки:

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

Сподіваюся, це вам корисно.


8

Це те, що працювало для мене (див. Зображення, пов'язане)

  1. Відкрийте Анаконда
  2. Виберіть Середовища на панелі ліворуч під домом
  3. Праворуч від того, де ви вибрали, і під смужкою "середовища пошуку" ви побачите базу (корінь). Натисніть на нього
  4. З'явиться трикутник, що вказує праворуч, натисніть на нього і виберіть "відкрити термінал"
  5. Тут використовуйте звичайну команду встановлення pip. Не потрібно вказувати на середовище / шлях

Для подальшої довідки ви можете знайти папку, яку завантажують ваші пакунки, якщо у вас є вимога, яка вже задоволена. Ви можете побачити це, якщо прокрутити вгору термінал. Він повинен читати щось на кшталт: вимогу вже задоволено, а потім шлях

[ піп встановити анаконда]


3

Для тих, хто бажає встановити невелику кількість пакетів у конді з pip, використовуючи,

sudo $(which pip) install <instert_package_name>

працював на мене.

Пояснення

Мені здається, це все одно, що which pipце дуже надійно для пошуку шляху conda env до місця, де ти є. Однак при використанні sudoце, здається, переспрямовує контури або іншим чином порушує це.

Використання виконуваних $(which pip)файлів незалежно від команди sudoабо будь-якої з команд і подібне до запуску /home/<username>/(mini)conda(3)/envs/<env_name>/pipв Linux. Це відбувається тому $(), що запускається окремо, а текстовий вихід додається до зовнішньої команди.


3

Усі вищезазначені відповіді в основному засновані на використанні virtualenv. У мене просто свіжа установка anaconda3 і не встановлено жодного virtualenv в ньому. Отже, я знайшов кращу альтернативу їй, не замислюючись над створенням virtualenv.

Якщо у вас є багато версій pip та python, встановлених у Linux, то спочатку запустіть команду нижче, щоб перелічити всі встановлені шляхи до pip.

де піп

Ви отримаєте щось подібне як вихід.

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

Скопіюйте шлях pip, який ви хочете використати для встановлення вашого пакету, і вставте його після заміни sudo /home/prabhakar/anaconda3/bin/pipв команді нижче.

/home/prabhakar/anaconda3/bin/pipвстановити судо<package-name>

Це спрацювало досить добре для мене. Якщо у вас є проблеми з установкою, будь ласка, прокоментуйте.


3

якщо ви використовуєте ОС Windows, відкрийте підказку Anaconda та введітьactivate yourenvname

А якщо ви використовуєте mac або Linux OS, відкрийте термінал і введітьsource activate yourenvname

yourenvname ось ваше бажане середовище, в якому ви хочете встановити пакет pip

після введення вищевказаної команди ви повинні побачити, що ваше середовище змінено з baseвашого введеного середовища yourenvnameв консольному виході (а це означає, що ви зараз перебуваєте в бажаному середовищі)

Тоді все, що вам потрібно зробити, це звичайна pip installкоманда, наприкладpip install yourpackage

Тим самим пакет піп буде встановлено у вашому середовищі Conda


3

python -m pip install Pillow

Буде використовувати pip поточного Python, активованого з

source activate shrink_venv


3

Залежить від того, як ви налаштували змінну середовища PATH. Коли ваша оболонка вирішить дзвінок на піп, який перший бін він знайде?

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

Переконайтесь, що папка 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

Вона порожня.

Особисто мені подобається обробляти всю мою конфігурацію PATH за допомогою .pam_environment , ось приклад:

(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), але ви все одно зможете ними користуватися (шанс конфлікту).


Один зайвий комет. Спосіб встановлення pip може створювати проблеми: - Ви повинні використовувати: conda install pip -> нові пакети, встановлені з pip, будуть додані до списку conda. - Ви НЕ БУДЕТЕ використовувати: sudo apt встановити python3-pip -> нові пакети не будуть додані до списку conda (тому не керовані), але ви все одно зможете їх використовувати (шанс конфлікту).
BorjaEst

привіт всім :) Як я можу видалити папку для сміття, як /usr/libна випадок, якщо вона перебуває перед моєю папкою бік анаконди при запуску whereis pip?
Ленн

Спробуйте sudo apt remove python3-pipвидалити піп з вашого дистрибутива Linux , а потім в Конде середовищі ви використовуєте: conda install -c anaconda pip.
BorjaEst

2

Я зіткнувся з проблемою встановлення пакета non conda на анаконду, я дотримувався найбільш вподобаної відповіді тут, і це не вийшло добре (можливо, тому, що моя анаконда знаходиться в каталозі F, а env створено в папці C, а папка бін не створена, Я поняття не маю, але це не спрацювало).

Згідно з анакондою, файл pip вже встановлений (що знайдено за допомогою команди " conda list" у вікні anaconda), але пакети pip не встановлювались, ось ось що я зробив, я знову встановив pip, а потім pip встановив пакет.

conda install pip
pip install see

see - це некондиційний пакет.


2

Добре я спробував всі перераховані вище методи. Ніхто не працював на мене. Для мене працювало наступне:

  1. Активізуйте своє оточення
  2. Завантажте пакет .whl вручну з https://pypi.org/simple/ /
  3. Перейдіть у папку, в яку ви завантажили .whl з командного рядка з активованим середовищем
  4. виконайте: pip install package_name_wwhat.whl

1

Якщо ви тільки хочете мати установку Конда. Просто видаліть усі інші шляхи python зі змінної PATH.

Лише:

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

Це дозволяє просто використовувати, pip install *і він встановиться прямо у вашу конда установки.


-1

Просто activate shrink_venvтак само зробимо. Я спробував створити нове середовище, і моя установка conda не дозволяє мені використовувати джерело на початку.


sourceНа початку вам не потрібно, якщо ви працюєте в Windows
KWx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.