Лайфхаки

Маленькие, полезные хитрости

Как в проекте менять версии Python внутри venv. Зачем использовать pyenv ?

27.05.2023 в 03:02

Как в проекте менять версии Python внутри venv. Зачем использовать pyenv ?

pyenv- замечательный инструмент для управления несколькими версиями Python. Даже если в вашей системе уже установлен Python, стоит установитьpyenv, чтобы вы могли легко опробовать новые языковые функции или помочь внести свой вклад в проект, который работает на другой версии Python.

Почему бы не использовать системный Python?

«Системный Python» - это Python, который устанавливается в вашей операционной системе. Если у вас Mac или Linux, то по умолчанию, когда вы набираетеpythonв своем терминале, вы получаете хороший Python REPL.

Так почему бы не использовать его? Один из способов взглянуть на это состоит в том, что этот Python действительно belongs для операционной системы. В конце концов, он был установлен с операционной системой. Это даже отражается, когда вы запускаетеwhich:

$ which python /usr/bin/python

Здесьpythonдоступен всем пользователям, о чем свидетельствует его местоположение/usr/bin/python. Скорее всего, это не та версия Python, которую вы хотите:

$ python -V Pyhton 2.7.12

Чтобы установить пакет в Python в вашей системе, вы должны запуститьsudo pip install. Это потому, что вы устанавливаете пакет Python глобально, что является реальной проблемой, если другой пользователь приходит и хочет установить немного более старую версию пакета.

Проблемы с несколькими версиями одного и того же пакета, как правило, наполняют вас и кусают, когда вы меньше всего этого ожидаете. Один из распространенных способов решения этой проблемы - это популярный и стабильный пакет, который в своей системе неожиданно работает некорректно. После нескольких часов поиска и устранения неисправностей и поиска в Google вы можете обнаружить, что установили неправильную версию зависимости, и это разрушает ваш день.

Даже если ваша версия Python установлена ​​в/usr/local/bin/python3, вы все равно в опасности. Вы столкнетесь с теми же проблемами с разрешениями и гибкостью, которые описаны выше.

Кроме того, вы не очень контролируете, какая версия Python установлена ​​в вашей ОС. Если вы хотите использовать новейшие функции Python и, например, используете Ubuntu, вам просто не повезло. Версии по умолчанию могут быть слишком старыми, что означает, что вам просто нужно дождаться выхода новой ОС.

Наконец, некоторые операционные системы фактически используют упакованный Python для работы. Возьмем, к примеру,yum, который интенсивно использует Python для выполнения своей работы. Если вы устанавливаете новую версию Python и не будете осторожны при установке ее в свое пространство пользователя, вы можете серьезно повредить вашей способности использовать вашу ОС.

Виртуальное окружение с другой версией Python. Активация существующей виртуальной среды

Чтобы активировать виртуальную среду, некоторые оболочки магии требуется , чтобы ваш Python является один внутриfooвместо системы один. Это цельactivateфайл, который вы должны источник в текущую оболочку:

$ source foo/bin/activate

Пользователи Windows должны набрать:

$ foo\Scripts\activate.bat

После того, как виртуальная среда была активирована,pythonиpipисполняемых файлов и все скрипты , установленные модули сторонних те внутриfoo.В частности, все модули , установленные сpipбудут развернуты в виртуальной среде, что позволяет содержимого среды разработки. Активация виртуальной среды также должна добавить префикс к вашему приглашению, как показано в следующих командах.

# Installs 'requests' to foo only, not globally (foo)$ pip install requests

Сохранение и восстановление зависимостей

Чтобы сохранить модули , которые вы установили черезpip, вы можете перечислить все эти модули (и соответствующие версии) в текстовый файл с помощьюfreezeкоманды. Это позволяет другим быстро установить модули Python, необходимые для приложения, с помощью команды install. Условное название для такого файлаrequirements.txt:

(foo)$ pip freeze > requirements.txt (foo)$ pip install -r requirements.txt

Обратите внимание , чтоfreezeнаходится список всех модулей, в том числе переходных зависимостей , необходимых модулей верхнего уровня , которые Вы устанавливали вручную. Таким образом , вы можете предпочесть ремеслоrequirements.txtфайл вручную , поставив только модули верхнего уровня вам нужно.

Как изменить версию Python в pycharm. 7 ответов

Файл → Настройки

Настройки- > Project Interpreter- > Python Interpreters

Если он не указан, добавьте его.

    2

    Почему у этого есть положительные отзывы, поскольку это даже не отвечает на вопрос. Он говорит, что установил несколько версий Python (версия 2 и версия 3). Он хочет запустить некоторые скрипты с python 3, а некоторые с python 2. Как вы меняете используемую версию python?

    Poltron Galantine

    1

    Это в File-> Settings-> интерпретатор проекта в новых версиях.

    Andras Csehi

    3

    И в еще более новых версиях (например, 4.5.4 и выше) это находится в Файл -> Настройки -> Проект: {your_project_name} -> Интерпретатор проекта.

    Aiyion.Prime

    24

    Я думаю, вы говорите, что у вас установлены python2 и python3, и добавили ссылку на каждую версию в Pycharm > Settings > Project Interpreter

    Я думаю, что вы спрашиваете, как у вас есть проекты, запущенные с Python 2 и некоторые проекты, запущенные с Python 3.

      0

      Это будет работать для запуска сценария, но на самом деле предназначено для фактических запусков интерпретатора и может даже быть установлено для каждого класса. Существует настройка проекта, которая лучше подходит.

      mateor

      4

      Это также может произойти в Intellij Ultimate, интегрированном с PyCharm. Проблема диагностирована выше, вы выбрали неверный интерпретатор.

      Точный способ исправить это для любого заданного проекта - перейти в Настройки проекта … Проект и настроить Project SDK . Вы можете добавить новый SDK проекта, если у вас нет Python 3, добавленного путем перехода к двоичному файлу python3. Это устранит ошибки, перечисленные выше. Ярлык для параметров проекта - это значок синей шахматной доски.

      Вы также можете добавить Python 3 в качестве интерпретатора по умолчанию для проектов Python. В OSX это находится в Файл . Другие настройки … Структура проекта по умолчанию . Там вы можете установить Project SDK , который теперь будет применяться к каждому новому проекту. Он может быть другим на других платформах, но все же аналогичен.

      3

      Идти к:

      Files → Settings → Project → *"Your Project Name"* → Project Interpreter

      Там вы можете увидеть, какие внешние библиотеки вы установили для python2, а какие для python3.

      Выберите необходимую версию Python в соответствии с вашими требованиями.

      2

      0

      Впоявилась новая функция, которая называется(прокрутите немного вниз). Это упрощает переключение между интерпретаторами Python и позволяет увидеть, какую версию вы используете.

      Включить строку состояния

      Если вы не видите строку состояния, вы можете легко активировать ее, выполнив команду "Найти действие" (Ctrl+Shift+Aили++Aна компьютере Mac). Затем введите строку состояния и выберите View: Status Bar, чтобы увидеть ее.

Как установить venv Python. ПО позволяющее создавать виртуальное окружение в Python

Программное обеспечение, которое позволяет создавать виртуальные окружения в Python можно разделить на те, что входят в стандартную библиотеку Python и не входят в нее. Сделаем краткий обзор доступных инструментов (хороший пост на эту тем есть на stackoverflow ).

virtualenv

Это, наверное, одни из самых популярных инструментов, позволяющих создавать виртуальные окружения. Он прост в установке и использовании. В сети довольно много руководств по virtualenv , самые интересные, на наш взгляд, будут собраны в конце урока в разделе “Полезные ссылки”. В общем, этот инструмент нужно обязательно освоить, как минимум, потому что описание развертывания и использования многих систем, созданных с использованием Python , включает в себя процесс создания виртуального окружения с помощью virtualenv .

pyenv

Инструмент для изоляции версий Python . Чаще всего применяется, когда на одной машине вам нужно иметь несколько версий интерпретатора для тестирования на них разрабатываемого вами ПО.

virtualenvwrapper

Virtualenvwrapper – это обертка для virtualenv позволяющая хранить все изолированные окружения в одном месте, создавать их, копировать и удалять. Предоставляет удобный способ переключения между окружениями и возможность расширять функционал за счет plug-in ’ов.

Существуют ещё инструменты и plug-in ’ы, выполняющие работу по изоляции частей системы Python , но мы их не будем рассматривать.

Инструменты, входящие в стандартную библиотеку Python .

venv

Этот модуль появился в Python3 и не может быть использован для решения задачи изоляции в Python2 . По своему функционалу очень похож на virtualenv . Если вы работаете с третьим Python , то можете смело использовать данный инструмент.

Не создается виртуальное окружение Python. Не создается виртуальное окружение!

Всем доброго времени суток!

После dist-upgrade не могу создать виртуальное окружение python (v2.7.x).

$ virtualenv test 1 ↵ Running virtualenv with interpreter /usr/local/bin/python2 New python executable in test/bin/python2 Not overwriting existing python script test/bin/python (you must use test/bin/python2) Installing setuptools, pip… Complete output from command /home/djnoob/test/bin/python2 -c "import sys, pip; sys…d\"> + sys.argv))" setuptools pip: Traceback (most recent call last): File "", line 1, in File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/__init__.py", line 60, in File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/util.py", line 18, in File "/home/djnoob/test/lib/python-wheels/distlib-0.1.9-py2.py3-none-any.whl/distlib/version.py", line 14, in File "/home/djnoob/test/lib/python-wheels/distlib-0.1.9-py2.py3-none-any.whl/distlib/compat.py", line 31, in ImportError: cannot import name HTTPSHandler ---------------------------------------- …Installing setuptools, pip…done. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/virtualenv.py", line 2378, in main() File "/usr/lib/python3/dist-packages/virtualenv.py", line 830, in main symlink=options.symlink) File "/usr/lib/python3/dist-packages/virtualenv.py", line 1032, in create_environment install_wheel(to_install, py_executable, search_dirs) File "/usr/lib/python3/dist-packages/virtualenv.py", line 975, in install_wheel 'PIP_NO_INDEX': '1' File "/usr/lib/python3/dist-packages/virtualenv.py", line 917, in call_subprocess % (cmd_desc, proc.returncode)) OSError: Command /home/djnoob/test/bin/python2 -c "import sys, pip; sys…d\"> + sys.argv))" setuptools pip failed with error code 1

Пробовал гуглить - ничего адекватного. Система debian sid, пакеты python-virtualenv и python-pip стоят.

Виртуальное окружение Python vs code. Using Python Virtual Environment in VSCode

When trying to use a Python virtual environment in VSCode, it was not detecting the virtual environment. The solution was very simple, but I couldn’t find it on Google.

Most of the solutions found on StackOverflow and Github were suggesting to change thepythonPathin VSCode settings.

This article shows how to use a Python virtual environment in VSCode, without having to change thepythonPathin VSCode settings.

virtualenvand creating a virtual environment. If you are only interested in the VSCode setup, skip to the VSCode setup section directly.

Install Virtualenv

We will be using virtualenv to create our python virtual environments. We will use pip to install it.

Install virtualenv using pip:

pip install virtualenv

Check your installation:

virtualenv --version

Create a Virtual Environment

First, let us create a folder.virtualenvsin the home directory. This is where we will keep all our virtual environments.

cd ~ mkdir .virtualenvs cd .virtualenvs

From inside the.virtualenvsdirectory, create a new virtual environment usingvirtualenv

virtualenv venv

Now, let us activate the virtual environment

source venv/bin/activate

We will install a package in the virtual environment so that we can test if the setup is working as expected.

pip install excel

We will createtest.pythat will import from theexcelpackage that we just installed.

from excel import OpenExcel

VSCode Setup

At first, if you open thetest.pyfile, assuming you have Python linter extension installed, VSCode will show an error like this.

This is because VSCode is not using the correct python interpreter. There are two ways in which you can fix this.

1. UpdateVenv PathSettings in VSCode

Open VSCode preferences (Ctrl + ,) and search for “venv”. Add~/.virtualenvsto the “Venv Path” settings, like so:

Restart VSCode and click on the interpreter version on the left-bottom corner.

Now, you will be able to see the virtual environment python interpreter in the interpreter list. Select it, now the issue should be resolved.

2. Add the Virtual Environment Folder to VSCode.

Как установить несколько версий Python. Скачивание последней версии Python

Первый шаг должен быть вам знаком: нам необходимо обновить зеркала Ubuntu и установленные пакеты, что бы быть уверенными что мы загружаем последние версии пакетов при установке чего-либо:

Обязательные обновления: $ sudo apt update && sudo apt upgrade -y

Установка другой версии Python на Ubuntu трубует установки целого ряда зависимых библиотек для Python. Я честно гвооря не уверен что делает половина из этого, и скорее всего это никому из нас никогда не понадобится. Но поверьте, это необходимый шаг:

Установка зависимостей Python: $ sudo apt-get install build-essential checkinstall $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \ libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Именно здесь многие могут начать установку Python с помощью Ubuntu package manager командой apt-get install python3.X. Мы скачаем и соберем последнюю версию Python из исходные кодов по нескольким причинам. Если версия Python достаточно свежая, некоторые машины под управлением Ubuntu могут не иметь обновленных зеркал что бы получить последнюю версию, но важнее всего то, что этот способ позволяет упростить управление несколькими версиями Python на Ubuntu.

Последнюю версию Python всегда можно найти на официальной странице с релизами на Python.org :

Первая ссылка на указанной странице должна называться Latest Python 3 Release - Python 3.X. Перейдя по ней необходимо прокрутить вниз страницы до секции «Files» и скопировать URL ссылки Gzipped source tarball.

На вашей Ubuntu машине необходимо теперь скачать эти исходные коды с помощью утилиты «wget». Ниже пример команд для скачивания заархивированной версии Python 3.9.2 в папку /opt и распаковка ее:

Скачивание Python: $ cd /opt $ sudo wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz $ sudo tar xzf Python-3.9.2.tgz

Теперь последняя версия Python скачана. После этого нам остается ее установить… правильно .