Установите PyQt5 5.14.1 в Linux

pip3 install PyQt5
Collecting PyQt5
  Using cached https://files.pythonhosted.org/packages/3a/fb/eb51731f2dc7c22d8e1a63ba88fb702727b324c6352183a32f27f73b8116/PyQt5-5.14.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3.6/tokenize.py", line 452, in open
        buffer = _builtin_open(filename, 'rb')
    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-b2zw891b/PyQt5/setup.py'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-b2zw891b/PyQt5/

Затем я загрузил zip-папку с https://www.riverbankcomputing.com/software/pyqt/download5 и запустил:

python3 configure.py --qmake /home/oo/Qt/5.14.0/gcc_64/bin/qmake
make
sudo make install

Успешно

>>> import PyQt5
>>> import PyQt5.QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.sip'
>>> 

Итак, я установил

pip3 install PyQt5.sip
pip3 install sip

Успешно

но все равно получаю ту же ошибку No module named 'PyQt5.sip' за import PyQt5.QtCore

также пробовал PyQtChart, но все еще ошибка

pip3 install PyQtChart
Collecting PyQtChart
  Using cached https://files.pythonhosted.org/packages/83/35/4f6328db9a31e2776cdcd82ef7688994c11e265649f503858f1913444ba9/PyQtChart-5.14.0-5.14.0-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl
Collecting PyQt5>=5.14 (from PyQtChart)
  Using cached https://files.pythonhosted.org/packages/3a/fb/eb51731f2dc7c22d8e1a63ba88fb702727b324c6352183a32f27f73b8116/PyQt5-5.14.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3.6/tokenize.py", line 452, in open
        buffer = _builtin_open(filename, 'rb')
    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-gzep4mr7/PyQt5/setup.py'

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-gzep4mr7/PyQt5/

Я также загрузил zip-папку с https://www.riverbankcomputing.com/software/pyqtchart/download и запустил:

python3 configure.py --qmake /home/oo/Qt/5.14.0/gcc_64/bin/qmake
Error: Unable to import PyQt5.QtCore. Make sure PyQt5 is installed.

Скриншот QT::

Моя конечная цель - запустить график свечей с использованием pyqt5.

sudo python3 -m pip install pyqt5 pyqtchart
[sudo] password for oo:  
The directory '/home/oo/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/oo/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: pyqt5 in /usr/lib/python3/dist-packages
Requirement already satisfied: pyqtchart in /usr/local/lib/python3.6/dist-packages
Requirement already satisfied: PyQt5-sip<13,>=12.7 in /home/oo/.local/lib/python3.6/site-packages (from pyqtchart)

но все равно получаю ту же ошибку:

Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt5
>>> import PyQt5.QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.sip'
>>> 

8 ответов

Решение

Похоже, что в последней версии PyQt5 для pypi есть ошибка, поэтому я установил версию 5.14:

sudo apt-get update && \
    sudo apt-get autoclean

sudo apt-get update && sudo apt-get install \
    -y --no-install-recommends \
    python3-pip \
    python3-setuptools

sudo python3 -m pip install pyqt5==5.14 pyqtchart==5.14

Скопируйте пример из моего предыдущего ответа в main.py и запустите:

python3 main.py

Я рекомендую вам выполнить поиск в папках и файлах, созданных вашими неудачными попытками, и удалить их.

Для своего теста я использовал следующий Dockerfile

Я думаю начальный pip installбеды были связаны с тем, что PyQt5 переключился на тег платформы manylinux2014 для последней версии (см. колеса на PyPI для 5.14.1 против 5.14.0). Только версии pip>= 19.3 распознают этот тег платформы (ref), поэтому, если у вас есть более старая версия pip, вместо этого она попытается установить из источника.

Два простых варианта (чтобы избежать установки из исходного кода):

  • Обновите pip до последней версии через pip3 install --upgrade pip
  • Установите предыдущий выпуск, в котором использовалось manylinux1 (pip3 install pyqt5==5.14.0)

У меня тоже была такая же проблема с установкой PyQt5 (при попытке установить ReText).

На Ubuntu 18.04 с Python 3.6.9 а также Pip 9.0.1, Мне удалось установить PyQt5 с этими шагами:

python3 -m venv env
source env/bin/activate
pip3 install pyqt5 --only-binary pyqt5

Этого было достаточно, чтобы pip загрузил PyQt5-5.14.0-5.14.0-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl двоичное колесо (которое не требует / использовать setup.py) вместо сборки из архива исходного кода.

Согласно https://pypi.org/project/PyQt5/, есть и другие двоичные колеса, так что, надеюсь, они покроют большинство потребностей платформы.

Иногда очень сложно установить PyQt5 в дистрибутив Debian или Ubuntu Linux. Мне удалось установить его для python3 в моей системе под управлением Debian 10 buster (стабильный).
Я установил его с помощью диспетчера пакетов apt.

sudo apt-get update 
sudo apt-get install python3-pyqt5

У меня тоже есть эта проблема. Это потому что твой pip находится в более старой версии, и вам следует обновить ее, используя следующие команды:

pip3 install setuptools wheel
pip3 install --upgrade pip
pip3 install --user pyqt5

Для тех, кому не нужна 5.14, решение может быть 5.12. Это сработало для меня:

sudo python3 -m pip install pyqt5==5.12 pyqtchart==5.12

Как показал вопрос, вы загружаете tar.zip файл не wheel. Установка QT с помощью pip разрешена только с wheel. Выберите версию, имеющую файл wheel на домашней странице PyPI и соответствующую вашей версии Python.

Мне пришлось собрать правильную версию sip из исходного кода, чтобы собрать желаемую версию PyQt5 из исходного кода, а затем я также получил следующую ошибку:

      No module named 'PyQt5.sip'

а потом

      python3 -m pip install PyQt5.sip

решил проблему

Другие вопросы по тегам