- Python3
- Упаковка модулей Python3
- Примеры упаковки
- Используемые макросы
- Пути
- Специфика
- Ошибки и пожелания
- Установка нескольких версий Python в одной ОС
- PYTHON УСТАНОВКА ALTLINUX
- Python3
- Упаковка модулей Python3
- Примеры упаковки
- Используемые макросы
- Пути
- Специфика
- Ошибки и пожелания
- Установка нескольких версий Python в одной ОС
Python3
Python3 собран в Sisyphus параллельно с Python2 и будет так существовать достаточно длительное время (по полного исчезновения Python2, которое в обозримом будущем вряд ли случится). Языки Python3 и Python2 отличаются синтаксисом, список различий доступен на http://docs.python.org/py3k/whatsnew/3.0.html
Упаковка модулей Python3
Примеры упаковки
Пример упаковки модуля Python3 из того же исходника, из которого пакуется модуль Python2 можно посмотреть тут.
Используемые макросы
Макросы для сборки модулей python3 содержатся в пакете rpm-build-python3 и аналогичны тем, что используются у нас для python.
Пути
В настоящий момент всё, что лежит в /usr/lib/python3.x считается написанным на Python3, все остальные .py файлы воспринимаются как Python2. Если хочется иметь Python3-файлы в других каталогах, то стоит использовать макрос %add_python3_path /path/to/dir/with/python3 (при этом .py-файлы будут компилироваться с помощью Python3, поиск зависимостей будет осуществляться с помощью Python3). Возможны случаи, когда захочется выполнить автоматическую генерацию Provides для модулей Python3, лежащих по нестандартному пути. В этом случае к предыдущему макросу потребуется добавить %add_python3_lib_path /path/to/dir/with/python3
Специфика
- При сборке модуля python3 из того же исходника, из которого собирается модуль python требуется оборачивать такую сборку в %if_with python3
- Группа пакетов — Development/Python3
- Python3/rpm-build-python3 — не базовая система, для использования макросов нужно писать BuildRequires(pre): rpm-build-python3
- Автоматический поиск Requires/Provides работает только для %python3_sitelibdir. Возможно, стоит добавить механизм для явного указания других путей (с исключением поиска там зависимостей с помощью python2), я подумаю. В отличие от python зависимости на python3-base генерируются явно (к примеру, «python3.2(os)»).
- Скомпилированные .pyo/.pyc у python3 кладутся в специальный каталог __pycache__ в директории с исходником. Не забывайте их паковать.
При смене версии python3 потребуется полная пересборка. Если для сборки вам требуется бутстрап — оставляйте, пожалуйста соответствующие ручки вида %def_with, это сильно упрощает формирование задания на обновление. Для этих же целей, наверное, стоит автоматически навешивать какую-нибудь группу вида @python3 на все пакеты, из которых собралось что-то, требующее python3.*(*).
Ошибки и пожелания
Ошибки и пожелания принимаются в багзиллу на пакеты python3/rpm-build-python3 или в личную почту vitty@
Установка нескольких версий Python в одной ОС
Системный Python лежит по пути /usr/bin/ и запускается через python3. Мы скомпилируем нашу версию Python в папку /usr/local/bin/
wget https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz tar zxvf Python-3.7.16.tgz sudo cp -r Python-3.7.16 /usr/local/bin cd /usr/local/bin/Python-3.7.16/ sudo apt-get install zlib-devel libssl-devel libsqlite3-devel libffi-devel sudo apt-get install pip sudo ./configure --prefix=/usr/local --with-ensurepip=install sudo make sudo make install sudo make clean sudo rm -rf /usr/local/bin/Python-3.7.16 # удаляем линки, чтобы они не пересекались с системным Python cd /usr/local/bin/ sudo rm -f 2to3 idle3 pip3 pydoc3 python3 python3-config pyvenv sudo rm -f /usr/local/lib/pkgconfig/python3.pc
Для работы Python версии 3.7.16 нужно запускать 2to3-3.7 idle3.7 pip3.7 pydoc3.7 python3.7 python3.7-config python3.7m python3.7m-config pyvenv-3.7
Запуск отдельного pip для python 3.9 — pip либо pip3.9
Запуск отдельного pip для pyhton 3.7 — pip3.7
Создадим отдельное окружение и изолированно обновим pip:
pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9) cd ~ python3.7 -m venv venv source venv/bin/activate pip install -U pip pip -V # pip 23.1 from /home/iam/venv/lib/python3.7/site-packages/pip (python 3.7) deactivate pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9)
Обновим отдельно хостовый pip для каждой версии и проверим:
pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9) pip install -U pip pip -V # pip 23.1 from /home/iam/.local/lib/python3/site-packages/pip (python 3.9) pip3.7 -V # pip 22.0.4 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) pip3.7 install -U pip pip3.7 -V # pip 23.1 from /home/iam/.local/lib/python3.7/site-packages/pip (python 3.7)
Удаление установленного нами Python 3.7.16:
cd /usr/local/bin/ sudo rm -f 2to3-3.7 idle3.7 pip3.7 pydoc3.7 python3.7 python3.7-config python3.7m python3.7m-config pyvenv-3.7 sudo rm -rf /usr/local/include/python3.7m/ sudo rm -f /usr/local/lib/pkgconfig/python-3.7.pc sudo rm -f /usr/local/lib/pkgconfig/python-3.7m.pc sudo rm -f /usr/local/lib/pkgconfig/python3.pc sudo rm -rf /usr/local/lib/python3.7 sudo rm -f /usr/local/lib/libpython3.7m.a sudo rm -f /usr/local/share/man/man1/python3.1 sudo rm -f /usr/local/share/man/man1/python3.7.1
PYTHON УСТАНОВКА ALTLINUX
AltLinux — это дистрибутив операционной системы Linux, который написан на языке программирования C и является одним из популярных вариантов для установки серверных приложений. Существует несколько способов установки Python в AltLinux. Один из них — это использовать менеджер пакетов AltLinux. Для этого необходимо выполнить следующие шаги:
sudo apt-get update
sudo apt-get install python
Этот метод автоматически загрузит и установит последнюю стабильную версию Python. Если вы хотите установить конкретную версию, вы можете использовать следующий код:
sudo apt-get install python3.6
Эта команда установит Python версии 3.6. Если вы используете Python только как часть своей разработки на Python, вам может не потребоваться установка Python отдельно, т.к. Python может быть установлен по умолчанию в AltLinux.
Install (and uninstall) ANY Python version on Linux
Процессор Эльбрус — это тупик. Интервью с И. Курдюковым (AltLinux)
Установка последней версии Python на Linux
How to install Python 3.11 on Ubuntu 22.04 LTS
Уроки Python для начинающих — #Установка последней версии Python на Linux, Ubuntu, Debian
Установка Python 3.9 на Linux из исходного кода / Python 3.9 Install
Linux and Python on your phone for free in 2 minutes // iPhone or Android
How to Install Python 3.10 on Manjaro — Installing Python3.10 on Manjaro — Python 3.10 Installation
- Майнер на python
- Кликер на pygame
- Python множественная линейная регрессия
- Методичка по python
- Gpu вычисления на python
- Нажмите любую клавишу для продолжения python
- Python виртуальное окружение vs code
- Django шаблоны сайтов
- Pycharm не видит numpy
- Django тестирование кэша
- Django orm что такое
Python3
Python3 собран в Sisyphus параллельно с Python2 и будет так существовать достаточно длительное время (по полного исчезновения Python2, которое в обозримом будущем вряд ли случится). Языки Python3 и Python2 отличаются синтаксисом, список различий доступен на http://docs.python.org/py3k/whatsnew/3.0.html
Упаковка модулей Python3
Примеры упаковки
Пример упаковки модуля Python3 из того же исходника, из которого пакуется модуль Python2 можно посмотреть тут.
Используемые макросы
Макросы для сборки модулей python3 содержатся в пакете rpm-build-python3 и аналогичны тем, что используются у нас для python.
Пути
В настоящий момент всё, что лежит в /usr/lib/python3.x считается написанным на Python3, все остальные .py файлы воспринимаются как Python2. Если хочется иметь Python3-файлы в других каталогах, то стоит использовать макрос %add_python3_path /path/to/dir/with/python3 (при этом .py-файлы будут компилироваться с помощью Python3, поиск зависимостей будет осуществляться с помощью Python3). Возможны случаи, когда захочется выполнить автоматическую генерацию Provides для модулей Python3, лежащих по нестандартному пути. В этом случае к предыдущему макросу потребуется добавить %add_python3_lib_path /path/to/dir/with/python3
Специфика
- При сборке модуля python3 из того же исходника, из которого собирается модуль python требуется оборачивать такую сборку в %if_with python3
- Группа пакетов — Development/Python3
- Python3/rpm-build-python3 — не базовая система, для использования макросов нужно писать BuildRequires(pre): rpm-build-python3
- Автоматический поиск Requires/Provides работает только для %python3_sitelibdir. Возможно, стоит добавить механизм для явного указания других путей (с исключением поиска там зависимостей с помощью python2), я подумаю. В отличие от python зависимости на python3-base генерируются явно (к примеру, «python3.2(os)»).
- Скомпилированные .pyo/.pyc у python3 кладутся в специальный каталог __pycache__ в директории с исходником. Не забывайте их паковать.
При смене версии python3 потребуется полная пересборка. Если для сборки вам требуется бутстрап — оставляйте, пожалуйста соответствующие ручки вида %def_with, это сильно упрощает формирование задания на обновление. Для этих же целей, наверное, стоит автоматически навешивать какую-нибудь группу вида @python3 на все пакеты, из которых собралось что-то, требующее python3.*(*).
Ошибки и пожелания
Ошибки и пожелания принимаются в багзиллу на пакеты python3/rpm-build-python3 или в личную почту vitty@
Установка нескольких версий Python в одной ОС
Системный Python лежит по пути /usr/bin/ и запускается через python3. Мы скомпилируем нашу версию Python в папку /usr/local/bin/
wget https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz tar zxvf Python-3.7.16.tgz sudo cp -r Python-3.7.16 /usr/local/bin cd /usr/local/bin/Python-3.7.16/ sudo apt-get install zlib-devel libssl-devel libsqlite3-devel libffi-devel sudo apt-get install pip sudo ./configure --prefix=/usr/local --with-ensurepip=install sudo make sudo make install sudo make clean sudo rm -rf /usr/local/bin/Python-3.7.16 # удаляем линки, чтобы они не пересекались с системным Python cd /usr/local/bin/ sudo rm -f 2to3 idle3 pip3 pydoc3 python3 python3-config pyvenv sudo rm -f /usr/local/lib/pkgconfig/python3.pc
Для работы Python версии 3.7.16 нужно запускать 2to3-3.7 idle3.7 pip3.7 pydoc3.7 python3.7 python3.7-config python3.7m python3.7m-config pyvenv-3.7
Запуск отдельного pip для python 3.9 — pip либо pip3.9
Запуск отдельного pip для pyhton 3.7 — pip3.7
Создадим отдельное окружение и изолированно обновим pip:
pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9) cd ~ python3.7 -m venv venv source venv/bin/activate pip install -U pip pip -V # pip 23.1 from /home/iam/venv/lib/python3.7/site-packages/pip (python 3.7) deactivate pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9)
Обновим отдельно хостовый pip для каждой версии и проверим:
pip -V # pip 22.2.2 from /usr/lib64/python3/site-packages/pip (python 3.9) pip install -U pip pip -V # pip 23.1 from /home/iam/.local/lib/python3/site-packages/pip (python 3.9) pip3.7 -V # pip 22.0.4 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) pip3.7 install -U pip pip3.7 -V # pip 23.1 from /home/iam/.local/lib/python3.7/site-packages/pip (python 3.7)
Удаление установленного нами Python 3.7.16:
cd /usr/local/bin/ sudo rm -f 2to3-3.7 idle3.7 pip3.7 pydoc3.7 python3.7 python3.7-config python3.7m python3.7m-config pyvenv-3.7 sudo rm -rf /usr/local/include/python3.7m/ sudo rm -f /usr/local/lib/pkgconfig/python-3.7.pc sudo rm -f /usr/local/lib/pkgconfig/python-3.7m.pc sudo rm -f /usr/local/lib/pkgconfig/python3.pc sudo rm -rf /usr/local/lib/python3.7 sudo rm -f /usr/local/lib/libpython3.7m.a sudo rm -f /usr/local/share/man/man1/python3.1 sudo rm -f /usr/local/share/man/man1/python3.7.1