python - ¿Cómo solucionar el problema "La prueba PyPI no se encuentra en.pypic" al enviar el paquete a PyPI?
pip python-2.6 (6)
Seguí la guía Cómo enviar un paquete a PyPI para enviar un paquete. Arrojó el siguiente error:
Traceback (most recent call last): File "setup.py", line 27, in ''Programming Language :: Python'', File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands self.run_command(cmd) File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command cmd_obj.run() File "/usr/lib/python2.6/site-packages/setuptools/command/register.py", line 9, in run _register.run(self) File "/usr/lib64/python2.6/distutils/command/register.py", line 33, in run self._set_config() File "/usr/lib64/python2.6/distutils/command/register.py", line 84, in _set_config raise ValueError(''%s not found in .pypirc'' % self.repository) ValueError: PyPI-test not found in .pypirc
El contexto de mi archivo .pypirc es:
[distutils] # this tells distutils what package indexes you can push to index-servers = PyPI # the live PyPI PyPI-test # test PyPI [PyPI] # authentication details for live PyPI repository: https://PyPI.python.org/PyPI username: {{username}} password: {{password}} [PyPI-test] # authentication details for test PyPI repository: https://testPyPI.python.org/PyPI username: {{username}}
Mi sistema operativo es
CentOS release 6.2 (Final)
y python env es
Python 2.6.6
.
¿Cuál es la razón y cómo solucionarlo?
Algunas trampas a evitar para hacer este trabajo:
El archivo .pypirc
se espera dentro del directorio HOME
. Esto es cierto para Windows y Unix.
Si no funciona, es porque el archivo .pypirc no se encuentra en la ruta indicada por la variable HOME
.
En Windows, para saber cuál es tu camino:
Con PowerShell (si está utilizando
pew
para administrar virtualenv por ejemplo),echo $HOME
.Con la consola de Windows predeterminada,
echo %HOMEPATH%
(sí, habla de "portabilidad")
Luego coloque el archivo .pypirc justo en esa ruta.
En cuanto al archivo, no olvide la parte distutil, de lo contrario no funcionará. Su archivo debe ser exactamente así:
[distutils]
index-servers =
pypi
pypitest
[pypitest]
repository = https://testpypi.python.org/pypi
username = <your user name goes here>
password = <your password goes here>
[pypi]
repository = https://pypi.python.org/pypi
username = <your user name goes here>
password = <your password goes here>
Mi intuición me dice que no personalice el nombre del repositorio pypi, no estoy seguro de que funcione de otra manera.
Luego, cuando ejecute el comando, simplemente proporcione el indicador -r
(repositorio) con pypitest
python setup.py register -r pypitest
Y eso debería hacer el truco.
Asegúrese de que su archivo .pypirc esté en su directorio / home.
Cuando recibí este error, cambié mi archivo .pypirc a:
[distutils]
index-servers =
pypi
test
[pypi]
repository: https://pypi.python.org/pypi
username: {{username}}
password: {{password}}
[test]
repository: https://testpypi.python.org/pypi
username: {{username}}
password: {{password}}
y luego corrí:
python setup.py register
en lugar de:
python setup.py register -r pypitest
Esto me solicitó mi nombre de usuario y contraseña, que ingresé y me registré correctamente. Tenga en cuenta que estaba siguiendo la guía de Peter Downs
Me di cuenta de que esto no se carga en pypitest, pero aún así pude registrar mi módulo en pypi usando este método.
Debería eliminar los comentarios aquí, ya que distutils no los analiza correctamente:
index-servers =
PyPI # the live PyPI
PyPI-test # test PyPI
Por lo que sólo:
index-servers =
PyPI
PyPI-test
O tal vez aún mejor no use mayúsculas y guiones mixtos para los nombres de repositorio, como sugiere Junchen. Sin embargo, con la versión actual debería funcionar.
Reemplazé "PyPI" / "PyPiestest" por letras minúsculas: "pypi" / "pypi-test". El error desapareció, pero provocará otro error:
Server response (403): You are not allowed to store ''mypackage'' package information.
Utilicé pypitest, en lugar de pypi-test. Funciona como el encanto.
Sigo las instrucciones de Peter Downs.