UX анти-шаблон

даю небольшое приложение, использующее 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')
 mouad07 янв. 2011 г., 18:57
Смотри сюда:pypi.python.org/pypi/PyQt/4.8.2
 eri0o17 мая 2016 г., 23:44
Кто-нибудь знает, верно ли это для Python 3 и PyQt 5?
 Macke07 янв. 2011 г., 19:12
@singularity: эта страница не помогает, нет ничего загружаемого, что setup.py может использовать там или на связанных страницах

Ответы на вопрос(4)

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

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

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

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

 dotancohen30 янв. 2014 г., 13:08
@ Gravetii: Похоже, это доступно сейчас:pypi.python.org/pypi/PyQt4/4.10.3
 pylover11 июн. 2014 г., 12:28
Жаль, почему пакет Python не использует setuptools?
 gravetii30 янв. 2014 г., 11:46
Привет, так как это давно, я хотел подтвердить то же самое снова. PyQt4 все еще не доступен на PyPi?
 Lennart Regebro11 июн. 2014 г., 12:55
Вы имеете в виду distutils. Setuptools не является обязательным. И вам придется спросить разработчиков.
 Macke24 февр. 2014 г., 10:38
@dotancohen: Нет, это всего лишь страница с метаданными, без загружаемых материалов.

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

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

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

Решение Вопроса

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

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

[email protected] ~ $ 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.

Ваш ответ на вопрос