La instalación de Pip desde pypi funciona, pero desde testpypi falla (no se pueden encontrar los requisitos)
Estoy intentando crear mi primer paquete de Python. Para no estropear todo el asunto, he intentado subirlo a los servidores de testpypi. Eso parece ir bien (sdist crea y la carga no muestra ningún error). Sin embargo, cuando intento instalarlo en un nuevo entorno virtual desde https://testpypi.python.org/pypi , se queja de mis requisitos de instalación, por ejemplo:
pip install -i https://testpypi.python.org/pypi poirot
Collecting poirot
Downloading https://testpypi.python.org/packages/source/p/poirot/poirot-0.0.15.tar.gz
Collecting tqdm==3.4.0 (from poirot)
Could not find a version that satisfies the requirement tqdm==3.4.0 (from poirot) (from versions: )
No matching distribution found for tqdm==3.4.0 (from poirot)
tqdm y Jinja2 son mis únicos requisitos. Intenté especificar las versiones, no especificar: error en cada sentido.
Parece que está intentando encontrar tqdm y Jinja2 en el servidor testpypi y no los encuentra (porque solo están disponibles en pypi normal). Cargar el paquete en el servidor que no es de prueba y ejecutar pip install funcionó.
¿Qué necesito agregar al archivo setup.py (a continuación) para que encuentre los requisitos cuando lo cargue en testpypi?
¡Gracias!
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
setup(name='poirot',
version='0.0.15',
description="Search a git repository's revision history for text patterns.",
url='https://github.com/dcgov/poirot',
license='https://raw.githubusercontent.com/DCgov/poirot/master/LICENSE.md',
packages=['poirot'],
install_requires=['tqdm==3.4.0', 'Jinja2==2.8'],
test_suite='nose.collector',
tests_require=['nose-progressive'],
classifiers=[
'Environment :: Console',
'Intended Audience :: Developers',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5'
],
include_package_data=True,
scripts=['bin/big-grey-cells', 'bin/little-grey-cells'],
zip_safe=False)
Actualizar
PyPI ha actualizado su sitio. Según los documentos , el nuevo consejo es:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple poirot
--index-url
apunta a su paquete en TestPyPI.--extra-index-url
apunta a dependencias de PyPI.poirot
es tu paquete.
Precaución : a pesar de esta recomendación de los documentos oficiales, el uso --extra-index-url
puede resultar inseguro en determinadas situaciones, especialmente en servidores privados. Vea también el video de A. Sottile que demuestra los riesgos relacionados con el pedido de opciones y la combinación de servidores PyPI públicos con privados. Úselo con precaución y evalúe sus propios riesgos.
Anticuado
Intentar pip install --extra-index-url https://testpypi.python.org/pypi poirot
.
Ver también una publicación de referencia .
Al intentarlo en enero de 2021, la actualización de la respuesta aceptada no funcionó para mí. Esto funcionó:
pip install -i https://test.pypi.org/pypi/ --extra-index-url https://pypi.org/simple <your_package_in_testpypi>
Tenga en cuenta que la primera URL es test.pypi.org/pypi
y la segunda es pypi.org/simple
.
Su página oficial debe actualizarse, sus instrucciones muestran:
pip install -i https://test.pypi.org/simple/ <your_package_in_testpypi>
lo cual no funciona.