it-swarm.com.ru

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

конда 4.2.13 MacOSX 10.12.1

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

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

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

conda create -n shrink_venv

Активируйте это:

source activate shrink_venv

Затем я могу видеть в терминале, что я работаю в моем env (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, и она работает намного лучше. Я на маке.

55
jeffery_the_wind

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

  1. Запустите conda create -n venv_name и source 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

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

54
Windmill

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

pip install package-name

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

conda install package-name

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

Если у вас установлен pip в anaconda, вы можете запустить следующее в блокноте jupyter или в вашей оболочке 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
40
sambeth

Если вы не добавили pip при создании среды conda 

conda create -n env_name pip

а также не установил pip внутри среды

source activate env_name
conda install pip

тогда единственный пип, который вы получили, это системный пип, который установит пакеты по всему миру.

Шина, как вы можете видеть в этом выпуске , даже если вы выполнили одну из упомянутых выше процедур, поведение pip внутри среды conda все еще не определено.

Чтобы гарантировать использование pip, установленного внутри среды conda, без необходимости вводить длинный /home/username/anaconda/envs/env_name/bin/pip, я написал функцию Shell:

# 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" "[email protected]"
}

Надеюсь, что это полезно для вас.

5
Allen Ye

Для желающих установить небольшое количество пакетов в conda с помощью pip, используя

Sudo $(which pip) install <instert_package_name>

работал на меня.

Объяснение

В любом случае, мне кажется, что which pip очень надежен для нахождения пути conda env pip туда, где вы находитесь. Однако при использовании Sudo это, кажется, перенаправляет пути или иным образом нарушает это.

Использование $(which pip) выполняет это независимо от Sudo или любой из команд и похоже на запуск /home/<username>/(mini)conda(3)/envs/<env_name>/pip в Linux. Это связано с тем, что $() запускается отдельно, а текстовый вывод добавляется во внешнюю команду.

3
josh

Я столкнулся с проблемой при установке неконда пакета на anaconda, я последовал наиболее понравившемуся здесь ответу, и он не пошел хорошо (возможно, потому что мой anaconda находится в каталоге F, а env создан был в C, а папка bin не была создана, Понятия не имею, но это не сработало).

Согласно Anaconda pip уже установлен (который находится с помощью команды "conda list" в Anaconda Prompt), но пакеты pip не были установлены, поэтому я установил pip снова, а затем pip установил пакет.

conda install pip
pip install see

see - это пакет не-conda.

2
Abhijeet sinha

если вы используете открытую ОС Windows Anaconda Prompt и введите activate yourenvname

И если вы используете ОС Mac или Linux, откройте Терминал и введите source activate yourenvname

yourenvname здесь ваша желаемая среда, в которой вы хотите установить пакет pip

после ввода вышеуказанной команды вы должны увидеть, что имя вашей среды изменяется с base на вашу типизированную среду yourenvname в выводе консоли (что означает, что вы сейчас находитесь в нужном контексте среды)

Тогда все, что вам нужно сделать, это обычная команда pip install, например, pip install yourpackage

Таким образом, пакет pip будет установлен в вашей среде Conda

0
Code_Worm

Если выТОЛЬКОхотите установить conda. Просто удалите все остальные пути Python из вашей переменной PATH.

Оставляя только:

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

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

0
moto

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

0
Elisavet Fakou

Все вышеперечисленные ответы в основном основаны на использовании 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 в приведенной ниже команде.

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

Это сработало очень хорошо для меня. Если у вас возникли проблемы с установкой, пожалуйста, прокомментируйте.

0
Prabhakar Prasad