2011-07-28 13 views
8

Estoy tratando de enumerar ScientificPython como una dependencia en mi setup.py. Sin embargo, durante el proceso de instalación, Python parece no encontrar el paquete. ¿Qué está mal en mi enfoque?Instalar ScientificPython como una dependencia

Aquí está mi configuración:

import setuptools 
setuptools.setup(name = 'MyPack', version = '0.1', 
    description= 'Description.', 
    author = 'Me', 
    packages = setuptools.find_packages(), 
    install_requires = ['ScientificPython'], 
    dependency_links = ["https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content"]) 

Y esta es la parte más importante de la salida cuando corro python setup.py install:

Processing dependencies for MyPack==0.1 
Searching for ScientificPython 
Reading https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content 
Download error: unknown url type: https -- Some packages may not be found! 
Reading http://pypi.python.org/simple/ScientificPython/ 
Reading http://dirac.cnrs-orleans.fr/ScientificPython/ 
Reading http://starship.python.net/~hinsen/ScientificPython/ 
No local packages or download links found for ScientificPython 
Best match: None 
Traceback (most recent call last): 
    File "setup.py", line 22, in <module> 
    dependency_links = ["https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content"]) 
    File "/home/woltan/local/lib/python2.7/distutils/core.py", line 152, in setup 
    dist.run_commands() 
    File "/home/woltan/local/lib/python2.7/distutils/dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "/home/woltan/local/lib/python2.7/distutils/dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/install.py", line 76, in run 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/install.py", line 104, in do_egg_install 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 211, in run 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 427, in easy_install 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 478, in install_item 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 519, in process_distribution 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 563, in resolve 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 799, in best_match 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 811, in obtain 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 434, in easy_install 
    File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/package_index.py", line 475, in fetch_distribution 
AttributeError: 'NoneType' object has no attribute 'clone' 

Tal vez un problema es, que ScientificPython es de alguna manera no son accesibles a través PyPI , o al menos no descargable como easy_install ScentificPython, fallará con No local packages or download links found for ScentificPython.

¿Qué debo hacer para instalar ScientificPython con setuptools?

+0

Por curiosidad, ¿por qué no 'scipy'? – katrielalex

+0

@katrielalex Por alguna razón, mis antiguos desarrolladores fueron para ScientificPython. Entonces, sería mucho trabajo reescribir los módulos para usar scipy. Además, no estoy seguro de lo difícil/fácil que es instalar scipy especialmente con respecto a los enlaces de lapack ... – Woltan

Respuesta

2

El problema es específicamente que está tratando de hacer una conexión http a un sitio https. Por lo que puedo decir, setuptools no admite conexiones a https. Tendrá que usar otro método para obtener esos paquetes.

Mi recomendación, si desea usar setuptools, es que detalle en el archivo README el archivo que tienen para descargar esa dependencia e instálela y luego tenga la dependencia en las herramientas de configuración que falla en la instalación si no lo hacen no lo tengo.

+0

Eso supone que no tienen una URL que no tenga HTTPS.Tener un destino HTTP sin cifrar con los archivos sería la solución más simple al problema que le permitiría realizar la instalación de la forma que desee. – Drahkar

3

Ha intentado poner el enlace de descarga directa (https://sourcesup.cru.fr/frs/download.php/2309/ScientificPython-2.8.tar.gz) en la página dependency_links en lugar de la página html ya que su script parece no encontrar el paquete y luego intenta instalar None.

edición: acabo de dar cuenta: Pitón, aparentemente, no es capaz de abrir los recursos HTTPS - intenta subirlo a algún lugar sin https, usando normal http

editar 2: ¿Por qué no acaba de poner toda la carpeta ScientificPython en su distribución carpeta y asegúrese de que setup.py (o cualquier otra cosa que necesite llamar) invoque?

+0

¿Sabes por qué ScientificPython no se puede instalar a través de PyPI? ¿Y puede hacer una copia de seguridad del problema https? – Woltan

+0

ScientificPython en PyPI solo proporciona un enlace a su sitio web donde el enlace de descarga solo se refiere a la página de descarga que ya ha colocado en 'dependency_links'. No creo que Python intente descargar dos veces desde la misma página. – hlt

1

que estaba recibiendo de error similar al instalar MyProxyClient usando easy_install:

"Download error: unknown url type: https -- Some packages may not be found!"

y otros errores por no encontrar las cabeceras de OpenSSL.

¡Así que la instalación de libssl-dev (en Ubuntu) resolvió el problema para mí!

1

Python no puede manejar el protocolo https, instalar el paquete openssl-devel y reinstalar el python para solucionarlo.

Cuestiones relacionadas