Установите PyQt5 5.14.1 на Linux - PullRequest
6 голосов
/ 13 января 2020
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 :: enter image description here

Моя конечная цель - запустить свечный график, используя 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'
>>> 

Ответы [ 3 ]

20 голосов
/ 18 января 2020

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

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

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

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

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

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

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

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

python3 main.py

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

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

1 голос
/ 07 апреля 2020

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

На Ubuntu 18.04 с Python 3.6.9 и Pip 9.0.1, я смог установить pip 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/#files, есть и другие бинарные колеса, так что, надеюсь, это удовлетворит большинство потребностей платформы.

...