Установите 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.
Моя конечная цель - запустить график свечей с использованием 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
решил проблему