web-dev-qa-db-fra.com

Définir python lors de la création de virtualenv à l'aide de pipenv

En utilisant un Raspberry Pi utilisant Debian 4.14.34-v7 +, j'essaie de configurer pipenv avec Python 3.6.5 comme version par défaut de Python. J'installe d'abord Python 3.6 en le compilant sur le Pi (heures ...) Après avoir créé un répertoire 'robot', j'installe ensuite pipenv avec "$ Sudo pip3 install pipenv" et "$ pipenv install --three".

Ensuite, je démarre le Shell et ouvre Python, obtenant Python 3.5.3:

pi@raspberrypi:~/robot $ pipenv Shell
Spawning environment Shell (/bin/bash). Use 'exit' to leave.
. /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/activate
pi@raspberrypi:~/robot $ . /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/activate
(robot-XZ3Md9g0) pi@raspberrypi:~/robot $ python
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170124] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Je change ensuite le virtualenv par "$ pipenv --python 3.6" mais après son installation correcte (apparemment), je reçois immédiatement l'avertissement que pipenv attend toujours Python 3.5 ...:

(robot-XZ3Md9g0) pi@raspberrypi:~/robot $ pipenv --python 3.6
Virtualenv already exists!
Remove existing virtualenv? [Y/n]: y
Removing existing virtualenv…
Creating a virtualenv for this project…
Using /usr/local/bin/python3.6m (3.6.5) to create virtualenv…
⠋Running virtualenv with interpreter /usr/local/bin/python3.6m
Using base prefix '/usr/local'
New python executable in /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/python3.6m
Also creating executable in /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0
Warning: Your Pipfile requires python_version 3.5, but you are using 3.6.5 (/home/pi/.local/share/v/r/bin/python).
  $ pipenv check will surely fail.
(robot-XZ3Md9g0) pi@raspberrypi:~/robot $ python
Python 3.6.5 (default, May  3 2018, 11:25:17) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

SO - la question - Comment puis-je configurer pipenv pour rechercher Python 3.6 lorsque je crée le virtualenv pour la première fois? Je peux aller manuellement et modifier le Pipfile, mais cela semble aller à l'encontre du but d'avoir pipenv prendre soin des choses pour moi.

7
James Taylor

"Modifier le Pipfile" est la bonne façon de procéder si vous souhaitez modifier la version Python d'un environnement existant.

Si vous souhaitez créer un environnement nouvea en utilisant Python 3.6, vous pouvez exécuter

pipenv install --python 3.6

plutôt que

pipenv install --three

et cela devrait faire l'affaire.

23
Josh

Lors de la configuration de votre pipenv, vous pouvez spécifier la version de Python en utilisant: pipenv --python 3.6, pour utiliser Python3.6.

La modification de Pipfile fonctionne également, en changeant:

[requires] python_version = "3.6.6"

à la version spécifique de Python vous voulez.

Si vous avez fait tout cela et que vous rencontrez toujours des difficultés pour accéder à la bonne version de Python à partir de pipenv Shell alors vous voudrez peut-être vérifier votre .bashrc pour vous assurer que vous n'avez pas de alias pour une version spécifique de Python.

5
Keenan

Si vous souhaitez créer un environnement virtuel pour votre projet, les réponses ci-dessus peuvent ne pas fonctionner pour vous. Par exemple, si vous avez plusieurs versions de python installé et que vous deviez renommer les exécutables comme je le devais dans l'exemple ci-dessous, OR vous voudrez peut-être créer des environnements virtuels en utilisant différentes versions python.

Lors de la création d'environnements virtuels pour vos projets, vous pouvez plus précis et spécifier le chemin de l'exécutable python.

N'oubliez pas d'exécuter la commande ci-dessous relative au dossier du projet.

pipenv install --python 'C:\Python373\python373.exe'
2
Rayner Da Cruz