Возможно ли потребовать PyQt из setuptools setup.py?
Я создаю небольшое приложение, которое использует PyQt и hardt, было бы неплохо объявить эту зависимость в setup.py.
Однако, согласно этот блог (впервые попал в google для pyqt setuptools) говорит, что это невозможно, а последний абзац здесь не пытается это сделать.
Идеи? Возможно, мне нужно перейти на PySide, который находится на PyPi?
Update:
Очевидный 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')
Ответы
Ответ 1
В то время как принятый ответ был изначально правильным 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
.
Ответ 2
Правильно, пакеты PyQT не используют distutils/setup.py для его установки, поэтому они не могут быть установлены с помощью easy_install или pip. Вам необходимо загрузить и установить его вручную.
Это также означает, что вы не должны помещать его в свои метаданные requires
, так как easy_install и pip затем попытаются установить его и выполнить сбой.
Я не знаю, хорош ли PySide, но также не имеет setup.py, а также отказывается устанавливать с помощью easy_install/pip, поэтому неплохой вариант.:)
Другим вариантом является переупаковка PyQt с distutils, но это может быть большой проблемой.
Ответ 3
Пока вы можете pip install pyqt5
благодаря теперь доступным колесам (как предложено @mfitzp), от setup.py
через install_requires
это не требуется. Причина в том, что setuptools
не знает, как установить колеса, которые pip
умеет, а PyQT5 доступен только как колеса на PyPI (нет дистрибутива источника, т.е. Файла tar.gz
). См. Этот email и что отчет об ошибках.
Ответ 4
Setuptools> = 38.2.0 теперь знает, как установить колеса. Таким образом, тривиальный ответ - установить последнюю версию setuptools и потребовать, чтобы ваша просвещенная пользовательская база сделала то же самое. Чтобы принудительно использовать setuptools> = 38.2.0 во время установки, см. Этот соответствующий ответ в другом месте.
Поскольку setuptools 38.2.0 был выпущен более года назад, все предыдущие ответы на этот вопрос ужасающе устарели, явно ошибочны и менее чем полезны.