Python3 pip astra linux

Работа с разными версиями python3 в AstraLinux CommonEdition

В AstraLinux изначально установлен python3.5. Версию 3.7 установил с помощью менеджера пакетов Synaptic. Имеется простой код на языке python с библиотекой PyQt5:

from PyQt5 import QtWidgets import sys app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() window.show() sys.exit(app.exec_()) 

Если запустить файл с исходным кодом так: python3.5 test.py — всё работает. Если же я запускаю python3.7 test.py — в консоли выводится такая надпись: ImportError: cannot import name ‘QtWidgets’ from ‘PyQt5’ (/usr/lib/python3/dist-packages/PyQt5/init.py) Как сделать так, чтобы версия python3.7 смогла увидеть установленные пакеты и библиотеки? Пробовал работу с командой update-alternatives, назначал приоритеты, но проблему это не решило.

Самый простой вариант, ИМХО, — сделайте себе venv в python 3.7, установите в него все необходимые пакеты и работайте в созданном venv.

Во время создания виртуального окружения python3.7 -m venv venv сообщение: The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command. apt-get install python3-venv You may need to use sudo with that command. After installing the python3-venv package, recreate your virtual environment. Failing command: [‘/home/adminus/Документы/venv/bin/python3.7’, ‘-Im’, ‘ensurepip’, ‘—upgrade’, ‘—default-pip’]

Если вы установили более новый пайтон из пакетов, то соответствующий venv , скорее всего, называется python3.7-venv

проверил этот вариант: Уже установлен пакет python3.7-venv самой новой версии (3.7.3-2+deb10u3+ci202107011746+astra2).

2 ответа 2

Проблему с созданием окружения для Python3.7 в AstraLinux решил созданием окружения без модуля pip , но доступом к системным пакетам,

где pip есть:

python3.7 –m venv —without-pip —system-site-packages
Установка модулей из активированного окружения:
python3 –m pip install

Если вы установили более новый пайтон из пакетов, то соответствующий venv , скорее всего, называется python3.7-venv

С развёртыванием виртуального окружения есть одна тонкость. venv делает копию установки python , собранной саппортерами из дистрибутива. Но они всегда на несколько поколений позади актуальных версий. Поэтому перед практическим использованием venv необходимо обновить системные пакеты.

Я покажу на примере python-3.8 , который стоит у меня в Ubuntu, но у вас последовательность шагов будет точно такой же.

  1. Создать виртуальное окружение: $ /usr/bin/python-3.8 -m venv ~/tmp/venv-3.8
  2. Активировать это окружение в текущем сеансе bash : $ source ~/tmp/venv-3.8/bin/activate По этой команде в текущем сеансе будут прописаны переменные окружения, указывающие на бинарники, библиотеки и пакеты в каталоге ~/tmp/venv-3.8/
  3. Для проверки: (venv-3.8) $ which python3 -> /home/user/tmp/venv-3.8/bin/python3 Обратите внимание, что activate изменил строку приглашения в bash , добавив в неё указание, что в текущем сеансе активно виртуальное окружение.
  4. Первым делом нужно обновить pip и setuptools : (venv-3.8) $ pip3 install pip setuptools —upgrade Не знаю, как у вас в Астре, а у меня в Убунте в пакетах идёт совершенно допотопный pip версии 9. Текущий pip версии 21.2. setuptools апгрейдятся с версии 39 до 58.
  5. Теперь можно устанавливать pyqt5 и все остальные пакеты, необходимые вам. Устанавливать через pip ! не через пакеты дистрибутива: (venv-3.8) $ pip3 install pyqt5
  6. После установки всех пакетов запускаете ваш скрипт в активированном окружении: (venv-3.8) $ python3 test.py
  7. Если вам нужно отменить изменения переменных окружения, внесённые скриптом activate , выполните команду (venv-3.8) $ deactivate и все исходные настройки вернутся.

Для 3.6 вы можете создать такое же окружение в отдельной папке, и выполнять test.py , активировав его. Так вы полностью разделите пакеты между версиями пайтона.

Пустое виртуальное окружение весит меньше 10 Мб, но, разумеется, по мере установки пакетов, будет раздуваться. Например, у меня установлены numpy , scipy , pandas , matplotlib , tensorflow , jupyter — размер venv почти 1.8 гб.

Источник

Installing pip/setuptools/wheel with Linux Package Managers¶

This section covers how to install pip , setuptools , and wheel using Linux package managers.

If you’re using a Python that was downloaded from python.org, then this section does not apply. See the Requirements for Installing Packages section instead.

Note that it’s common for the versions of pip , setuptools , and wheel supported by a specific Linux Distribution to be outdated by the time it’s released to the public, and updates generally only occur for security reasons, not for feature updates. For certain Distributions, there are additional repositories that can be enabled to provide newer versions. The repositories we know about are explained below.

Also note that it’s somewhat common for Distributions to apply patches for the sake of security and normalization to their own standards. In some cases, this can lead to bugs or unexpected behaviors that vary from the original unpatched versions. When this is known, we will make note of it below.

Fedora¶

sudo dnf install python3-pip python3-wheel

To learn more about Python in Fedora, please visit the official Fedora docs, Python Classroom or Fedora Loves Python.

CentOS/RHEL¶

CentOS and RHEL don’t offer pip or wheel in their core repositories, although setuptools is installed by default.

To install pip and wheel for the system Python, there are two options:

    Enable the EPEL repository using these instructions. On EPEL 7, you can install pip and wheel like so:

sudo dnf install python3-pip python3-wheel
sudo dnf install python3-pip python3-wheel
sudo dnf upgrade python3-setuptools

To install pip, wheel, and setuptools, in a parallel, non-system environment (using yum) then there are two options:

  1. Use the “Software Collections” feature to enable a parallel collection that includes pip, setuptools, and wheel.
    • For Redhat, see here: https://developers.redhat.com/products/softwarecollections/overview
    • For CentOS, see here: https://github.com/sclorg

Be aware that collections may not contain the most recent versions.

sudo yum install python34u python34u-wheel

openSUSE¶

sudo zypper install python3-pip python3-setuptools python3-wheel

Debian/Ubuntu and derivatives¶

Firstly, update and refresh repository lists by running this command:

sudo apt update sudo apt install python3-venv python3-pip

Recent Debian/Ubuntu versions have modified pip to use the “User Scheme” by default, which is a significant behavior change that can be surprising to some users.

Arch Linux¶

Currently, there is no “copr” yum plugin available for CentOS/RHEL, so the only option is to manually place the repo files as described.

Table of Contents

Оцените статью
Adblock
detector