pypa / pipenv

Python Development Workflow for Humans.
https://pipenv.pypa.io
MIT License
24.84k stars 1.87k forks source link

Question: pipenv and conda #699

Closed tritemio closed 7 years ago

tritemio commented 7 years ago

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

kennethreitz commented 7 years ago

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
erinxocon commented 7 years ago

Can confirm that this works.

tritemio commented 7 years ago

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

kennethreitz commented 7 years ago

yes

thalesmello commented 6 years ago

This issue is related to #288

kadlugan commented 6 years ago

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]
datatalking commented 1 year ago

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