Лайфхаки

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

Управление несколькими версиями Python под.. Что значит "идеальный" пакет?

26.05.2023 в 14:12

Управление несколькими версиями Python под.. Что значит "идеальный" пакет?


Буду исходить из следующих требований:

  • Open source на github;
  • Поддержка всех актуальных\популярных версий python (2.7, 3.5, 3.6, 3.7, 3.8);
    Питоны бывают разные, и где-то до сих пор активно пишут на 2.7.
  • 100% покрытие юнит тестами;
    Юнит тесты улучшает архитектуру, позволяет автоматизировать регрессионные проверки.Бейдж с заветным числом повышает ЧСВ и задает планку другим .
  • Использование CI:
    Автоматические проверки — это очень удобно!А еще куча клевых бейджей
    • Запуск юнит тестов на всех платформах и на всех версиях питона;
      Не стоит верить тем, кто утверждает, что питон и устанавливаемые пакеты — кроссплатформенные , ведь всегда можно натолкнуться на баг .
    • Проверка код стайла;
      Единый стиль улучшает читаемость и уменьшает количество пустых дискуссий в ревью.
    • Статический анализатора кода;
      Автоматический поиск багов в коде? Дайте два!
  • Актуальная документация;
    Примеры работы с пакетом, описание методов\классов и разбор типичных ошибок — задокументированный опыт позволят снизить порог входа для новичков.
  • Кроссплатформенность разработки;
    К сожалению, в проекты сложно вносить личный вклад просто потому, что разработчик заточил инструменты под Unix. К примеру, для сборки использовал bash скрипты.
  • Пакет полезен и делает мир лучше.
    Сложное требование, так как судя по количеству пакетов в pypi (~210к) разработчики — дикие альтруисты и многое уже написано.

Как изменить версию Python в pycharm. Как выбрать версию Python в PyCharm?

Вопрос:

У меня есть PyCharm 1.5.4 и использовали параметр “Открыть каталог”, чтобы открыть содержимое папки в среде IDE.

Как я могу выбрать другую версию Python (которую я уже установил на своей машине), чтобы PyCharm использовал эту версию?

Лучший ответ:

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

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

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

Ответ №1

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

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

Ответ №2

Это также может произойти в 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 в соответствии с вашими требованиями.

Ответ №4

Быстрый ответ:

    FileSetting projectProject interpreter
  • Выберите желаемогоProject interpreter
  • Apply+

    :


    Ответ №5

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

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

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

    Ответ №6

    когда я использую терминал для запуска проекта, требуется Python 2.7.13:: Anaconda 4.3.0 (64-разрядная версия).

Несколько версий Python Windows. Installing Multiple Python Versions on Windows Using Virtualenv

You are here because:

  1. You are using Windows OS version 10+
  2. You would like to use multiple Python versions on the same computer
  3. You are tired of the internet telling you to “Just Use Virtualenv”

TL;DR

  1. OpenCommand Promptand enterpip install virtualenv
  2. Download the desiredpythonversion (do NOT add to PATH!), and remember thepath\to\new_python.exeof the newly installed version
  3. To create a virtualenv, openCommand Promptand enter
    virtualenv \path\to\env -p path\to\new_python.exe
  4. If you are usingPyCharm, update theProject Interpreterand theCode compatibility inspection.
  5. To install packages:
    (I) Activate virtualenv: openCommand Promptand enterpath\to\env\Scripts\activate.bat(II) Install desired packages
    (III) Deactivate withdeactivate.

The Long version; Do Read

Prologue

If you are using thethis process might be easier using their GUI. I haven’t tried it myself, please let me know how it went if you are going down that road :)

1. Install virtualenv

If you already have some virtual environments, or are using Anaconda, make sure the next steps are performed from outside all these environments.

2. Install Python

You can download python from the official site , for example forpython3.7.3go here .

The file you should be downloading is calledWindows x86–64 executable installer, orWindows x86 executable installerif for some reason you are using a 32-bit windows.

Once downloading is finished, open the executable file and an installation prompt will appear.

  • You do NOT want to add the new python to your PATH since we are going to have multiple python versions on the same computer, and we would like for each application to know only one python version.
  • Either use the default suggested location for the new python, or supply a location of your choice. Either way, remember this location and let’s denote it from now on withC:\\Python37.

3. Create a virtualenv

Open theCommand Prompt, or if you are using Anaconda open theAnaconda Prompt.

Decide where you want your virtualenv to be, for example,
C:\Users\\Anaconda3\envs\.

Enter:

virtualenv C:\Users\\Anaconda3\envs\ -p C:\\Python37\python.exe

4. Update PyCharm Interpreter

If you are using PyCharm, open the project you would like to work on (that is/will be written with the new python version), and go toFile -> Settings -> Project -> Project Interpreterpress the gear icon and thenAdd...

This will open a prompt window that allows you to define a new interpreter:

Assuming you are using Code Inspections, you might need to tell PyCharm which python version to inspect for. Go toFile -> Settings-> Editor -> Inspections -> Python -> Code compatibility Inspection, make sure the box on the top indicates the specific project you are working on, and tick the box of your python version.

If you don’t see your python version on the Options list, this might also be the time to update PyCharm… yup, happened to me too…

5. Install packages

Currently, yourvirtualenvcontains only the crucial packages,pipandsetuptools. To install more packages:

  1. OpenCommand Promptor
    C:\Users\\Anaconda3\envs\\activate.bat
  2. Usepipto install packages like you usually do.
  3. deactivate.

Epilogue

This morning, when I decided to open a new project with a different python version, I thought, “Yeah, I’ll just use a virtualenv”, because the internet said I can “Just do it”.

Well, it’s working now, so no hard feelings dear internet, but seriously, was the “Just” really justified? Does reinstalling-PyCharm-only-because-I-want-to-have-proper-code-inspections fall under the “Just” category??

Anyway, along the way I stumbled upon several helpful guides, but each one took me “just” one step of the way, so I decided to put it all in one place.

Несколько версий Python Windows. Installing Multiple Python Versions on Windows Using Virtualenv

Как изменить версию Python Linux. Upgrade Python to latest version (3.10) on Ubuntu Linux

apt upgradecommand as well.

To check the version of Python installed on your system run

python3 --version

pythonkeyword is used for Python 2.x versions which has been deprecated

In this guide we will

  1. Update Python to the latest version
  2. Fix pip & other Python related issues
  3. While doing the above two, ensure your Ubuntu which is heavily dependent on Python does not break

Updating Python to the latest version

Ubuntu's default repositories do not contain the latest version of Python, but an open source repository nameddeadsnakesdoes.

Python3.10 is not officially available on Ubuntu 20.04, ensure you backup your system before upgrading.

Step 1: Check if Python3.10 is available for install

sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update

apt list | grep python3.10

This will produce the below result, if you see python3.10 it means you can install it

Step 2: Install Python 3.10

sudo apt install python3.10

python3 --versionyou will still see an older version. This is because you have two versions of Python installed and you need to choose Python 3.10 as the default.

Step 3: Set Python 3.10 as default

Steps beyond here are tested on Ubuntu 20.04 in VM & WSL2, but are experimental , proceed at your own risk.

Changing the default alternatives for Python will break your Gnome terminal. To avoid this, you need to edit thegnome-terminalconfiguration file.

Open the terminal and run:

sudo nano /usr/bin/gnome-terminal

In first line, change#!/usr/bin/python3to#!/usr/bin/python3.8. PressCtrl +Xfollowed byenterto save and exit.

Then save and close the file.

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2

Now run

sudo update-alternatives --config python3

Now runpython3 --versionagain and you should see the latest Python as the output.

Fix pip and disutils errors

Installing the new version of Python will breakpipas thedistutilsfor Python3.10 is not installed yet.

Fix Python3-apt

Runningpipin terminal will not work, as the current pip is not compatible with Python3.10 and python3-apt will be broken, that will generate an error like

Traceback (most recent call last): File "/usr/lib/command-not-found", line 28, in <module> from CommandNotFound import CommandNotFound File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module> from CommandNotFound.db.db import SqliteDatabase File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module> import apt_pkg ModuleNotFoundError: No module named 'apt_pkg'

sudo apt remove --purge python3-apt

Then do some cleanup

sudo apt autoclean

DO NOT RUNsudo apt autoremoveas it will remove several packages that are required. This may break your system if you're using GUI, if you're on WSL2 you can proceed.

Как установить другую версию Python Linux. Скачивание последней версии 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 скачана. После этого нам остается ее установить… правильно .

Как установить несколько версий Python Ubuntu. Pyenv – Install Multiple Python Versions for Specific Project

Managing multiple versions of Python on a Linux system is not an easy task, especially for beginners. Sometimes it even gets worse when you want to develop and run multiple projects with different Python versions on the same server. However, this shouldn’t be the case if you employ pyenv .

Read Also : How to Install Latest Python 3.6 Version in Linux

What is Pyenv?

Pyenv is a simple, powerful and cross-platform tool for managing multiple Python versions on Linux systems, that used for.

  • Switching the global Python version on a per-user basis.
  • setting the local Python version on per-project basis.
  • Overriding the Python version with an environment variable.
  • Searching commands from multiple versions of Python and more.

How Does pyenv Work?

Usually, a single default version of Python is used to run all your applications, unless you explicitly specify the version you want to use within the application. But pyenv implements a simple concept of using shims (lightweight executables) to pass your command to the correct Python version you want to use, when you have multiple versions installed.

These shims are inserted by pyenv in a directories in front of your PATH . So when you run a Python command, it is intercepted by the appropriate shim and passed to pyenv , which then establishes the Python version that has been specified by your application, and passes your commands along to the rightful Python installation. This is an overview of how pyenv operates.

In this article, we will show how to install the latest version of pyenv in Linux. We will also demonstrate the first three uses case listed above.

How to Install Pyenv in Linux

1. First install all the required packages for installing different Python versions from sources using following command on your respective Linux distribution.

------------ On Debian/Ubuntu/Linux Mint ------------ $ sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev ------------ On CentOS/RHEL ------------ # yum -y install epel-release # yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel ------------ On Fedora 22+ ------------ # yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Next, grab the the latest pyenv source tree from its Github repository and install it in$HOME/.pyenvpath using following command.

$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Now you need to set the environment variable PYENV_ROOT to point to the path where you installed pyenv and export it. Then add $PYENV_ROOT/bin to your PATH to run pyenv command-line utility like any other system commands.

$ vim $HOME/.bashrc

Copy and paste the following lines at the end of this file.

## pyenv configs export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)" fi

4. Once you have made the above changes, you can either source $HOME/.bashrc file or restart the shell as shown.

$ source $HOME/.bashrc OR $ exec "$SHELL"

How to Install Multiple Python Versions in Linux

5. At this point, you should be ready to start using pyenv . Before you install any Python version, you can view all available versions with this command.

$ pyenv install -l

List Multiple Python Versions

6. You can now install multiple Python version via pyenv , for example.

$ pyenv install 3.6.4 $ pyenv install 3.6.5

Install Multiple Python Versions

7. To list all Python versions available to pyenv , run the following command. This will only show versions installed via pyenv itself.

$ pyenv versions

List Installed Python Versions

$ pyenv global

You can set the global python version using the pyenv command.

Как изменить версию Python по умолчанию Ubuntu. Переключение версии Python на Ubuntu и Debian

Инструмент командной строки update-alternatives предназначен для создания и поддержки символических ссылок для команд по умолчанию.

С его помощью мы можем легко переключать команды на разные версии.

В данном учебнике на системе Debian установлены Python3.9 и Python2.7.

Мы создадим группу для обеих команд и установим символические ссылки.

Создайте симлинк из /usr/bin/python2.7 в /usr/bin/python и задайте имя группы как “python”.

Позже имя группы будет использоваться для переключения ссылок.

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode

Измените ссылку симлинка /usr/bin/python3.9 на /usr/bin/python и установите имя группы на “python”.

Имя группы должно быть одинаковым для всех версий python.

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2

Вывод:

update-alternatives: using /usr/bin/python3.9 to provide /usr/bin/python (python) in auto mode

Повторите шаг 2, чтобы добавить в группу еще одну версию Python, которая уже установлена в вашей системе.

На данном этапе вы добавили два бинарника python в группу с именем “python”.

Теперь вы можете легко переключиться на любую версию с помощью следующих команд.

Здесь “python” – это имя группы, определенное в приведенных выше командах.

sudo update-alternatives --config python

Вывод:

There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/python3.9 2 auto mode * 1 /usr/bin/python2.7 1 manual mode 2 /usr/bin/python3.9 2 manual mode Press to keep the current choice, or type selection number:

В приведенном выше выводе Python 2.7 установлен в качестве текущей версии.

Чтобы изменить ее на Python 3.9, нужно ввести 0 или 2 и нажать Enter.

Вот и все.

Текущая версия Python в вашей системе изменена.

Просто введите следующую команду для просмотра корректной активной версии Python

python -V

Вывод:

Python 3.9.2

Вы можете добавить несколько версий Python в группу (Шаги: 01 и 02) и легко переключаться между ними.