Можно ли требовать PyQt из setuptools setup.py? - PullRequest
16 голосов
/ 07 января 2011

Я создаю небольшое приложение, которое использует PyQt и решил, что было бы неплохо объявить эту зависимость в setup.py.

Однако, согласно в этом блоге (первое попадание в google для pyqt setuptools) говорится, что это невозможно, и последний абзац здесь не пытается это сделать либо.

Идеи? Возможно, мне следует перейти на PySide , который включен PyPi ?

Обновление:

Очевидное install_requires = [ 'pyqt >= 0.7' ] в setup.py дает мне:

D:\3rd\BuildBotIcon\my-buildboticon\python>setup.py test
running test
install_dir .
Checking .pth file support in .
C:\Python26-32\pythonw.exe -E -c pass
Searching for pyqt>=4.7
Reading http://pypi.python.org/simple/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/download
No local packages or download links found for pyqt>=4.7
error: Could not find suitable distribution for Requirement.parse('pyqt>=4.7')

Ответы [ 4 ]

5 голосов
/ 07 января 2011

Правильно, пакеты PyQT не используют distutils / setup.py для своей установки, поэтому их нельзя установить с помощью easy_install или pip. Вам необходимо скачать и установить его вручную.

Это также означает, что вы должны , а не вставить это в свои requires метаданные, так как easy_install и pip попытаются установить его и потерпит неудачу.

Я не знаю, хорош ли PySide, но он также не имеет setup.py, а также отказывается от установки с помощью easy_install / pip, так что это не очень хороший вариант. :)

Другой вариант - переупаковать PyQt с distutils, но это может быть много работы.

2 голосов
/ 19 мая 2016

Хотя первоначально принятый ответ был правильным Python Wheels теперь предоставляет средства для установки пакетов расширений C, таких как PyQt5, без необходимости компиляции из исходного кода.

PyPi в настоящее время имеет .whl файлов для PyQt5 на Python3 для нескольких платформ, включая MacOS X, Linux (любая), Win32 и Win64 . Например, это вывод при установке pip PyQt5 на Python3 на Mac:

mfitzp@MacBook-Air ~ $ pip3 install pyqt5
Collecting pyqt5
  Downloading PyQt5-5.6-cp35-cp35m-macosx_10_6_intel.whl (73.2MB)
    100% |████████████████████████████████| 73.2MB 2.5kB/s 
Collecting sip (from pyqt5)
  Downloading sip-4.18-cp35-cp35m-macosx_10_6_intel.whl (46kB)
    100% |████████████████████████████████| 49kB 1.8MB/s 
Installing collected packages: sip, pyqt5
Successfully installed pyqt5-5.6 sip-4.18

Если вы нацелены на Python3 + PyQt5, у вас не должно возникнуть проблем при указании PyQt5 как нормальной зависимости в setup.py.

1 голос
/ 09 августа 2017

Хотя вы можете pip install pyqt5 благодаря имеющимся на данный момент колесам (как предложено @mfitzp), от setup.py до install_requires это не требуется. Причина в том, что setuptools не знает, как установить колеса, которые pip знает, как это делать, и PyQT5 доступен только как колеса в PyPI (исходный код отсутствует, т. Е. Нет файла tar.gz). Подробности смотрите в этом электронном письме и отчете об ошибке .

0 голосов
/ 03 января 2019

Setuptools> = 38.2.0 теперь знает, как установить колеса. Поэтому простой ответ - установить последнюю версию setuptools и потребовать, чтобы ваша просвещенная база пользователей сделала это.также.Чтобы принудительно использовать setuptools> = 38.2.0 во время установки, см. этот соответствующий ответ в другом месте .

Поскольку setuptools 38.2.0 был выпущен более года назад, все предыдущие ответы на этот вопросужасно устарели, явно не правы и менее чем полезны.

...