Estoy tratando de publicar mi paquete de python en un repositorio privado. Seguí la guía oficial https://packaging.python.org/en/latest/tutorials/packaging-projects/ y todo parecía estar bien. Aquí está la salida del terminal:
(venv) C:\Users\xxx\PycharmProjects\my_package>twine upload --config-file .pypirc -r pypi dist/* Uploading distributions to http://xxx/pypi/simple/ Enter your password: Uploading my_package-0.1-py3-none-any.whl 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8.03k/8.03k [00:01<00:00, 4.83kB/s] Uploading my-package-0.1.tar.gz 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7.40k/7.40k [00:00<00:00, 10.3kB/s]
Pero después de publicar, no puedo ver mi paquete en el repositorio ni al abrir la URL en el navegador ni puedo instalarlo por pip.
Me di cuenta de que .whl viene con un guión bajo en el nombre, mientras que .tar.gz viene con un guión. ¿Puede ser el problema? ¿Cómo puedo saber qué está mal?
Claro, no importa su paquete cargado en un repositorio público o privado. Incluso puedes no subirlo a Git para publicarlo.
Puedes hacerlo en 4 pasos básicos
setup.py
twine
En el siguiente ejemplo, la carpeta demoverflow
contiene __init__.py
que convierte a demoverflow
en un paquete de python.
└── demoverflow ├── demo.py └── __init__.py
# demo.py class Demo: ...
import Demo
en __init__.py
para poder importarlo desde demoverflow
(como: from demoverflow import Demo
)
# __init__.py from demo import Demo
setup.py
from setuptools import setup, find_packages setup( name="demoverflow", version="0.0.1", author="Firstname Lastname", author_email="<demoverflow@support.com>", description="My demo package", packages=find_packages(), install_requires=[], keywords=['python'], classifiers=[ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Operating System :: Unix", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", ] )
NOTA: Antes de compilar el paquete, debe tener la siguiente estructura de archivos
├── demoverflow │ ├── demo.py │ └── __init__.py └── setup.py
Entonces setup.py
y su paquete deberían ser vecinos
Si ya instaló setuptools
, puede ejecutar el siguiente comando para generar la carpeta dist
python3 setup.py sdist bdist_wheel
Este comando requerirá el nombre de usuario y la contraseña de su cuenta PyPI
twine upload dist/*