python3 python distutils pypi

install python3 distutils



pypi UserWarning: OpciĆ³n de distribuciĆ³n desconocida: ''install_requires'' (6)

¿Alguien encuentra esta advertencia al ejecutar python setup.py install un paquete PyPI?

install_requires define lo que el paquete requiere. Muchos paquetes PyPI tienen esta opción. ¿Cómo puede ser una "opción de distribución desconocida"?


¡ ATENCIÓN ! ¡ ATENCIÓN ! Respuesta imperfecta adelante. Para obtener el "último memo" sobre el estado del empaque en el universo de Python, lea este ensayo bastante detallado .

Acabo de encontrarme con este problema al intentar construir / instalar ansible. El problema parece ser que distutils realmente no es compatible con install_requires. Las herramientas de configuración should parchear al azar, pero no es así, probablemente porque la última versión de setuptools es 0.6c11 desde 2009, mientras que distutils es un proyecto básico de Python.

Así que, incluso después de instalar manualmente setuptools-0.6c11-py2.7.egg ejecutando setup.py solo recoge distutils dist.py, y no el de site-packages / setuptools /.

También la documentación de setuptools sugiere utilizar ez_setup y no distutils.

Sin embargo, en la actualidad, las herramientas de instalación se proporcionan mediante la distribute , y ese sabor de la configuración () es compatible con install_requires.


Esta es una advertencia de distutils y es una señal de que no tiene instaladas las herramientas de configuración. Instalarlo desde http://pypi.python.org/pypi/setuptools eliminará la advertencia.


Estoy en una Mac con Python 2.7.11. He estado jugando con la creación de proyectos extremadamente simples y directos, donde mi único requisito es que pueda ejecutar python setup.py install , y que setup.py utilice el comando setup, idealmente desde distutils. Literalmente, no hay otras importaciones o códigos aparte de los kwargs para la setup() aparte de lo que observo aquí.

setup.py el error cuando las importaciones para mi archivo setup.py son:

from distutils.core import setup

Cuando uso esto, recibo advertencias tales como

/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: opción de distribución desconocida: ''entry_points'' warnings.warn ( msg)

Si cambio las importaciones (y nada más ) a lo siguiente:

from distutils.core import setup import setuptools # noqa

Las advertencias desaparecen

Tenga en cuenta que no estoy usando setuptools , solo importarlo cambia el comportamiento de tal manera que ya no emite las advertencias. Para mí, esta es la causa de una diferencia verdaderamente desconcertante en la que algunos proyectos que uso dan esas advertencias y otros no.

Claramente, está ocurriendo algún tipo de parche de monos, y se ve afectado por si se realiza o no esa importación. Esta probablemente no es la situación para todos los que investigan este problema, pero para el entorno estrecho en el que estoy trabajando, esta es la respuesta que estaba buscando.

Esto es coherente con el otro comentario (de la comunidad), que dice que los distutils deben configurar las herramientas de configuración de parche y que tuvieron el problema al instalar Ansible. Ansible parece haber intentado permitir instalaciones sin tener herramientas de configuración en el pasado, y luego regresó a eso.

https://github.com/ansible/ansible/blob/devel/setup.py

Hay muchas cosas en el aire ... pero si estás buscando una respuesta simple para un proyecto simple, probablemente solo deberías importar las herramientas de configuración.


Por lo que puedo decir, este es un error en setuptools donde no está eliminando la configuración de herramientas de opciones específicas antes de llamar a la clase base en la biblioteca estándar: https://bitbucket.org/pypa/setuptools/issue/29/avoid-userwarnings-emitted-when-calling

Si tiene una import setuptools incondicional en su setup.py (como debería hacerlo si utiliza las opciones específicas de configuración de herramientas), entonces el hecho de que la secuencia de comandos no esté fallando con ImportError indica que setuptools está instalado correctamente.

Puede silenciar la advertencia de la siguiente manera:

python -W ignore::UserWarning:distutils.dist setup.py <any-other-args>

Solo haz esto si usas la importación incondicional que fallará completamente si setuptools no está instalado :)

(Estoy viendo este mismo comportamiento en un checkout del repositorio de configuración de herramientas post-fusión, por lo que estoy seguro de que es un error de setuptools en lugar de un problema de configuración del sistema. Espero que la distribución previa a la fusión tenga el mismo problema)


python setup.py usa distutils que no es compatible con install_requires. setuptools hace, también distribuye (su sucesor), y pip (que usa cualquiera) do. Pero en realidad tienes que usarlos. Es decir, setuptools a través del comando easy_install o pip install .

Otra forma es importar la configuración de setuptools en su setup.py, pero esto no es estándar y hace que todos los que quieran usar su paquete tengan que tener las herramientas de configuración instaladas.


sudo apt-get install python-dev # for python2.x installs sudo apt-get install python3-dev # for python3.x installs

Instalará los encabezados faltantes. Solucionó mi problema