Вопрос-Ответ

Using Pip to install packages to Anaconda Environment

Использование Pip для установки пакетов в среду Anaconda

conda 4.2.13 MacOSX 10.12.1

Я пытаюсь установить пакеты из pip в новую среду (виртуальную), созданную с помощью anaconda. В документах Anaconda говорится, что это совершенно нормально. Это делается так же, как и для virtualenv.


Активируйте среду, в которую вы хотите поместить программу, затем pip установите программу...


Я создал пустую среду в Ananconda следующим образом:

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 для пакетов, но у меня возникла проблема с Pillow от anaconda, поэтому я хотел получить его от pip, и поскольку в документах сказано, что это нормально.

Вывод which -a pip:

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

Обновить

Я вижу, что это довольно распространенная проблема. Что я обнаружил, так это то, что conda env плохо работает с PYTHONPATH. Кажется, что система всегда просматривает PYTHONPATH местоположения, даже когда вы используете среду conda. Теперь я всегда запускаю unset PYTHONPATH при использовании среды conda, и это работает намного лучше. Я на Mac.

Переведено автоматически
Ответ 1

Для других, кто столкнулся с такой ситуацией, я обнаружил, что это самое простое решение:


  1. Запустите conda create -n venv_name и conda activate venv_name, где venv_name - имя вашей виртуальной среды.



  2. Запустите conda install pip. Это установит pip в ваш каталог venv.



  3. Найдите свой каталог anaconda и фактическую папку venv. Это должно быть где-то вроде /anaconda/envs/venv_name/.



  4. Установите новые пакеты, выполнив /anaconda/envs/venv_name/bin/pip install package_name.



Теперь пакеты должны быть успешно установлены с использованием pip этой виртуальной среды!

Ответ 2

Я решил эту проблему следующим образом:

Если у вас по умолчанию установлен pip, отличный от conda, но по умолчанию используется 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, чтобы он использовал anaconda python для установки

python -m pip install <package>

При этом пакет устанавливается в каталог библиотеки anaconda, а не в каталог библиотеки, связанный с (не-anaconda) pip

РЕДАКТИРОВАТЬ - Причина, по которой это работает, заключается в следующем:

Команда pip ссылается на конкретный pip-файл / ярлык (which -a pip сообщает вам, какой именно). Аналогично, команда python ссылается на конкретный файл python (which -a python сообщает вам, какой именно). По той или иной причине эти две команды могут рассинхронизироваться, так что ваш pip по умолчанию находится в другой папке, чем ваш python по умолчанию, и, следовательно, связан с другой версией python.

В отличие от этого, в python -m pip конструкции не используется ярлык, на который указывает pip команда. Вместо этого он просит python найти свою версию pip и использовать эту версию для установки пакета.

Ответ 3

Все, что вам нужно сделать, это открыть приглашение Anaconda и ввести

pip install package-name

Он автоматически установится в среду anaconda без необходимости использования

conda install package-name

Поскольку некоторым пакетам conda может не хватать поддержки сверхурочно, требуется установка с использованием pip, и это один из способов сделать это

Если у вас установлен pip в anaconda, вы можете запустить следующее в jupyter notebook или в вашей оболочке python, связанной с anaconda

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

Проверьте свою версию pip с помощью pip.__version__. Если это версия 10.x.x или выше, то установите свой пакет python с помощью этой строки кода

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

В вашем ноутбуке jupyter вы можете устанавливать пакеты python через pip в ячейку следующим образом;

!pip install package-name

или вы могли бы использовать свою версию python, связанную с anaconda

!python3.6 -m pip install package-name
Ответ 4

Это то, что сработало у меня (см. Ссылку на изображение)


  1. Откройте Anaconda

  2. Выберите среды на левой панели ниже home

  3. Справа от выбранного вами места и под панелью "среды поиска" вы должны увидеть base (корень). Нажмите на него.

  4. Должен появиться треугольник, указывающий вправо, щелкните по нему и выберите "открыть терминал"

  5. Используйте здесь обычную команду pip install . Нет необходимости указывать на среду / путь

Для дальнейшего использования вы можете найти папку, в которую загружаются ваши пакеты, если у вас уже выполнено требование. Вы можете увидеть это, прокрутив вверх в терминале. Это должно выглядеть примерно так: требование уже выполнено, а затем путь

[pip устанавливает anaconda]

python pip anaconda