Установите версию python при создании virtualenv с помощью pipenv

Используя Raspberry Pi с Debian 4.14.34-v7 +, я пытаюсь установить pipenv с Python 3.6.5 в качестве версии Python по умолчанию. Сначала я устанавливаю Python 3.6, скомпилировав его на Pi (часы ...). После создания каталога «робот» я затем устанавливаю pipenv с sudo pip3 install pipenv и pipenv install --three.

Затем я запускаю оболочку и открываю Python, получая 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()

Затем я изменяю virtualenv на pipenv --python 3.6, но после правильной (очевидно) установки я сразу получаю предупреждение о том, что pipenv по-прежнему ожидает 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.
>>> 

Как мне настроить pipenv для поиска Python 3.6 при первом создании virtualenv? Я могу вручную войти и отредактировать Pipfile, но, похоже, это противоречит цели, когда pipenv обо всем позаботился за меня.


person James Taylor    schedule 03.05.2018    source источник


Ответы (4)


«Редактировать файл Pipfile» - это правильный путь, если вы хотите изменить версию Python существующей среды.

Если вы хотите создать новую среду с использованием Python 3.6, вы можете запустить

pipenv install --python 3.6

скорее, чем

pipenv install --three

и это должно помочь.

Просто обязательно удалите старые файлы Pipfile (ы), если вы создаете новую среду, иначе команды не будут выполнены.

person Ash    schedule 03.05.2018
comment
А затем просто игнорируйте предупреждения Your Pipfile requires python_version 3.5, but you are using X (...) pipenv check will surely fail. - person Tomasz Gandor; 16.07.2020

При настройке pipenv вы можете указать версию Python, используя: pipenv --python 3.6, чтобы использовать Python3.6.

Редактирование Pipfile также работает, изменяя:

[requires] python_version = "3.6.6"

к конкретной версии Python, которую вы хотите.

Если вы сделали все это, но у вас по-прежнему возникают проблемы с доступом к правильной версии Python из pipenv shell, вы можете проверить свой .bashrc файл, чтобы убедиться, что у вас нет alias для конкретной версии Python.

person Keenan    schedule 01.10.2018
comment
Это требует редактирования Pipfile, который может иметь версии и т. Д. python_version не принимает диапазоны или несколько версий (которые могут быть указаны в порядке предпочтения). Рассмотрите poetry вместо pipenv для лучшей поддержки версий Python. - person Tomasz Gandor; 16.07.2020

Если вы хотите создать виртуальную среду для своего проекта, приведенные выше ответы могут не сработать для вас. Например, если у вас установлено несколько версий python и вам пришлось переименовать исполняемые файлы, как в приведенном ниже примере, ИЛИ для того же проекта вы можете создать виртуальные среды, использующие разные версии python.

При создании виртуальных сред для ваших проектов вы можете уточнить и указать путь к исполняемому файлу python.

Не забудьте запустить приведенную ниже команду относительно папки проекта.

pipenv install --python 'C:\Python373\python373.exe'
person DaCruzR    schedule 26.03.2019
comment
работает и на ubuntu: pipenv install --python '/usr/bin/python3.7' спасибо - person C.K.; 12.09.2019

Предлагаю вам два подхода:

  1. pip install --python 3.7 <your desired version number to be replaced>

(Для этого необходимо установить asdf или pyenv. Если они у вас не установлены, читайте дальше!)

  1. Ручной метод. (Применимо для Linux) (Для победы обратитесь к ответу @ Ryner!)
  • Загрузите gzip-архив python с сайта python.org и распакуйте его в папку, используя компакт-диск.

  • Ударьте следующее

     ./configure
    
     make 
    
     sudo make install
    
  • Теперь у вас локально установлена ​​версия Python, все, что вам нужно сделать, это сделать первый шаг.

pipenv install --python <version-u-installed>

Примечание. В любом случае, если вы хотите удалить программу, перейдите в каталог, в котором вы выполнили make, и просто нажмите make uninstall.

Надеюсь, это поможет! Удачного кодирования!

person Deekshith Anand    schedule 06.09.2020