Пиппен с Кондой?

Я использую Anaconda для своих virtualenvs в выигрыше 10. Я использую git-bash. Я недавно читал о pipenv и решил попробовать. Я установил pipenv на моем базовом conda python, который является версией python 2.7, используя:

pip install pipenv

Я могу легко создать среду python, используя

conda create --name py3 python=3.6

но я попробовал:

$ pipenv install --three

который дал:

Warning: Python 3 was not found on your system…
You can specify specific versions of Python with:
  $ pipenv --python path\to\python
....\miniconda2\lib\site-packages\pipenv\_compat.py:86: ResourceWarning: Implicitly cleaning up <TemporaryDirectory 'c:\\users\\......\\appdata\\local\\temp\\pipenv-4_fzvq-requi
rements'>
  warnings.warn(warn_message, ResourceWarning)

Можно ли использовать два пакета вместе?

Ответ 1

Вы можете установить pipenv в среду conda, инициализированную python 3.

$ conda create -n pipenv-test python=3
$ source activate pipenv-test
(pipenv-test)$ pipenv install --python=/home/.../miniconda3/envs/pipenv-test/bin/python
Creating a virtualenv for this project…
Using /home/.../miniconda3/envs/pipenv-test/bin/python (3.6.5) to create virtualenv…
⠋Already using interpreter /home/.../miniconda3/envs/pipenv-test/bin/python
Using base prefix '/home/.../miniconda3/envs/pipenv-test'
New python executable in /home/.../.local/share/virtualenvs/wispy-j1ojliDY/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/.../.local/share/virtualenvs/wispy-j1ojliDY
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (ca72e7)!
Installing dependencies from Pipfile.lock (ca72e7)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project virtualenv, run the following:
 $ pipenv shell

Это, похоже, работает для меня, но я не тестировал его широко. Кроме того, мой базовый conda python равен 3.6, и я использую Ubuntu 16.04. Мне любопытно узнать, не вызвало ли это проблемы.

Ответ 2

Вы можете настроить Pipenv для использования исполняемого файла Conda Python и каталога пакетов сайта (ref).

pipenv --python=$(conda run which python) --site-packages

Вы можете проверить, действительно ли вы используете свою среду Conda в Pipenv:

pipenv run python
>>> import sys
>>> sys.executable, sys.path
# <directories under your Conda environment>

Установив NumPy через Conda, но не через Pipenv, вы увидите, что Pipenv все равно найдет NumPy.

conda install numpy
pipenv run python
>>> import numpy as np
>>> np.__file__
# <path under your Conda environment>

Когда вы устанавливаете NumPy через Pipenv, он будет скрывать установку пакета от Conda.

pipenv install numpy
pipenv run python
>>> import numpy as np
>>> np.__file__
# <path under your Pipenv environment>