pypa / pipenv

Python Development Workflow for Humans.

Home Page:https://pipenv.pypa.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Question: pipenv and conda

tritemio opened this issue · comments

Thanks for your work on pipenv!

I have some question as I'm struggling to understand if I can use pipenv in my workflow. I am a conda user and I am pretty familiar with conda environments but I have rarely used virtualenvs.
Can pipenv be used together within a conda/anaconda installation?

I tried to install pipenv but I get an error about virtualenvs:

⠋Using base prefix '/Users/anto/miniconda3'
New python executable in /Users/anto/.local/share/virtualenvs/phconvert-LTUxcv-Y/bin/python
ERROR: The executable /Users/anto/.local/share/virtualenvs/phconvert-LTUxcv-Y/bin/python is not functioning
ERROR: It thinks sys.prefix is '/Users/anto/.local/share/virtualenvs' (should be '/Users/anto/.local/share/virtualenvs/phconvert-LTUxcv-Y')
ERROR: virtualenv is not compatible with this system or executable

EDIT: typos

use pipenv outside of conda, but you can use it to create virtualenvs with an anaconda python.

For example:

$ pipenv --python path/to/anaconda/bin/python

Can confirm that this works.

@kennethreitz, do I need to install pipenv using another python, then point it to the conda installed one?

This issue is related to #288

I have been seeing some weird issues with pipenv and conda. I am posting this issue here, but it may be an issue for elsewhere, but your help in working this out is greatly appreciated.

What i am seeing is some dependency issues where it seems that although i have specified my python3 path one of my packages wants to use my anaconda path, even through its been installed via pipenv install

Does anyone know how to fix this? Answers much appreciated

The details

I am wanting to build a flask app using zappa to put it on AWS. So i am using pipenv to create a new python3 env that i specify then i install the rele

source activate fastai 
pipenv --python /usr/local/bin/python3
pipenv shell

check the env

pipenv --venv                                                                                             ✔  2744  10:06:53
/Users/me/.local/share/virtualenvs/Tpipenv-kxwN0b39

install zappa and flask

pipenv install zappa and flask 

check zappa

zappa update                                                                                              ✔  2738  10:02:59
(botocore 1.8.36 (/Users/me/Library/anaconda3/envs/fastai/lib/python3.6/site-packages), Requirement.parse('botocore<1.10.0,>=1.9.14'), {'boto3'})
Calling update for stage dev..

You can see that for some reason it wants to use the python that is associated with anaconda (i think). The pipenv graph looks ok (??)

pipenv graph                                                                                              ✔  2730  09:57:05
Flask==0.12.2
  - click [required: >=2.0, installed: 6.7]
  - itsdangerous [required: >=0.21, installed: 0.24]
  - Jinja2 [required: >=2.4, installed: 2.10]
    - MarkupSafe [required: >=0.23, installed: 1.0]
  - Werkzeug [required: >=0.7, installed: 0.12]
Pillow==5.0.0
pybase64==0.2.1
  - parameterized [required: >=0.6.1, installed: 0.6.1]
  - six [required: >=1.10.0, installed: 1.11.0]
zappa==0.45.1
  - argcomplete [required: ==1.9.2, installed: 1.9.2]
  - base58 [required: ==0.2.4, installed: 0.2.4]
  - boto3 [required: >=1.4.7, installed: 1.6.16]
    - botocore [required: >=1.9.16,<1.10.0, installed: 1.9.16]
      - docutils [required: >=0.10, installed: 0.14]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - python-dateutil [required: >=2.1,<2.7.0, installed: 2.6.1]
        - six [required: >=1.5, installed: 1.11.0]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - s3transfer [required: >=0.1.10,<0.2.0, installed: 0.1.13]
      - botocore [required: >=1.3.0,<2.0.0, installed: 1.9.16]
        - docutils [required: >=0.10, installed: 0.14]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
        - python-dateutil [required: >=2.1,<2.7.0, installed: 2.6.1]
          - six [required: >=1.5, installed: 1.11.0]
  - botocore [required: >=1.7.19, installed: 1.9.16]
    - docutils [required: >=0.10, installed: 0.14]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - python-dateutil [required: >=2.1,<2.7.0, installed: 2.6.1]
      - six [required: >=1.5, installed: 1.11.0]
  - docutils [required: >=0.12, installed: 0.14]
  - durationpy [required: ==0.5, installed: 0.5]
  - future [required: ==0.16.0, installed: 0.16.0]
  - hjson [required: ==3.0.1, installed: 3.0.1]
  - jmespath [required: ==0.9.3, installed: 0.9.3]
  - kappa [required: ==0.6.0, installed: 0.6.0]
    - boto3 [required: >=1.2.3, installed: 1.6.16]
      - botocore [required: >=1.9.16,<1.10.0, installed: 1.9.16]
        - docutils [required: >=0.10, installed: 0.14]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
        - python-dateutil [required: >=2.1,<2.7.0, installed: 2.6.1]
          - six [required: >=1.5, installed: 1.11.0]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - s3transfer [required: >=0.1.10,<0.2.0, installed: 0.1.13]
        - botocore [required: >=1.3.0,<2.0.0, installed: 1.9.16]
          - docutils [required: >=0.10, installed: 0.14]
          - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
          - python-dateutil [required: >=2.1,<2.7.0, installed: 2.6.1]
            - six [required: >=1.5, installed: 1.11.0]
    - click [required: >=5.1, installed: 6.7]
    - placebo [required: >=0.8.1, installed: 0.8.1]
    - PyYAML [required: >=3.11, installed: 3.12]
  - lambda-packages [required: ==0.19.0, installed: 0.19.0]
  - python-dateutil [required: ==2.6.1, installed: 2.6.1]
    - six [required: >=1.5, installed: 1.11.0]
  - python-slugify [required: ==1.2.4, installed: 1.2.4]
    - Unidecode [required: >=0.04.16, installed: 1.0.22]
  - PyYAML [required: ==3.12, installed: 3.12]
  - requests [required: >=2.10.0, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.1.18]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - six [required: >=1.11.0, installed: 1.11.0]
  - toml [required: >=0.9.3, installed: 0.9.4]
  - tqdm [required: ==4.19.1, installed: 4.19.1]
  - troposphere [required: >=1.9.0, installed: 2.2.1]
    - cfn-flip [required: >=0.2.5, installed: 1.0.3]
      - Click [required: Any, installed: 6.7]
      - PyYAML [required: Any, installed: 3.12]
      - six [required: Any, installed: 1.11.0]
  - Werkzeug [required: ==0.12, installed: 0.12]
  - wheel [required: >=0.30.0, installed: 0.30.0]
  - wsgi-request-logger [required: ==0.4.6, installed: 0.4.6]

@kadlugan I'm facing a similar AWS install with pipenv as a conda user I'm curious how this worked for you.