2011-01-07 21 views
14

Estoy construyendo una pequeña aplicación que usa PyQt y pensé que sería bueno declarar esa dependencia en setup.py.¿Es posible requerir PyQt desde setuptools setup.py?

Sin embargo, de acuerdo con this blog (primer acceso en google para pyqt setuptools) dice que no se puede hacer, y el último párrafo here tampoco intenta hacerlo.

Ideas? Tal vez debería cambiar a PySide que está en PyPi?

Actualización:

La obvia install_requires = [ 'pyqt >= 0.7' ] en setup.py me da:

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') 
+0

mira aquí: http://pypi.python.org/pypi/PyQt/4.8.2 – mouad

+1

@singularity: Esa página no ayuda, no hay nada descargable que setup.py pueda usar allí, o en el link- a las páginas – Macke

+0

¿Alguien sabe si esto sigue siendo cierto para Python 3 y PyQt 5? – Elric

Respuesta

3

Si bien la respuesta aceptada era originalmente correcta Python Wheels ahora proporciona un medio para instalar paquetes de extensión C como PyQt5 sin la necesidad de compilación desde el origen.

PyPi actualmente tiene .whl archivos para PyQt5 en Python3 para plataformas múltiples, incluyendo MacOS X, Linux (any), Win32 and Win64. Por ejemplo, esta es la salida cuando PIP-instalar PyQt5 en python3 en un 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 

Si el idioma de python3 + PyQt5 entonces no debería tener ningún problema especificando PyQt5 como una dependencia de la normalidad en setup.py.

6

derecho, los paquetes pyqt no está utilizando distutils/setup.py por su instalación, por lo que no puede ser instalado con easy_install o pip. Debe descargarlo e instalarlo manualmente.

Eso también significa que debe no ponerlo en su requires metadatos, como easy_install PIP y luego tratará de instalarlo y fallar.

No sé si PySide es bueno, pero tampoco tiene setup.py, y también se niega a instalar con easy_install/pip, por lo que no es una buena opción. :)

Otra opción es volver a empaquetar PyQt con distutils, pero eso puede ser mucho trabajo.

+0

Hola, ya que esto hace un tiempo, quería confirmar lo mismo otra vez. ¿PyQt4 todavía no está disponible en PyPi? – gravetii

+0

@gravetii: Parece que está disponible ahora: https://pypi.python.org/pypi/PyQt4/4.10.3 – dotancohen

+2

@dotancohen: No, sigue siendo solo una página con metadatos, no descargables. – Macke

2

Mientras que usted puede pip install pyqt5 gracias a las ruedas ahora disponibles (como lo sugiere @mfitzp), no se puede solicitar al setup.py a través del install_requires. La razón es que setuptools no sabe cómo instalar ruedas que pip sabe cómo hacerlo, y PyQT5 solo está disponible como ruedas en PyPI (no hay distribución de fuente, es decir, no hay archivo tar.gz). Consulte esto email y ese bug report para más detalles.

Cuestiones relacionadas