swyxio / swyxdotio

This is the repo for swyx's blog - Blog content is created in github issues, then posted on swyx.io as blog pages! Comment/watch to follow along my blog within GitHub
https://swyx.io
MIT License
343 stars 45 forks source link

[Newbie Tip] What to do when you 403 during pypi twine upload #483

Closed swyxio closed 1 year ago

swyxio commented 1 year ago

category: note slug: pypi-403 tags: Python

I'm pretty new to the pypi packaging ecosystem so recently ran into some trouble pushing a python package:

$ python3 -m twine upload --repository testpypi dist/*

Uploading distributions to https://test.pypi.org/legacy/
Enter your username: swyx
Enter your password: 
Uploading smol_dev-0.1-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.4/7.4 kB • 00:00 • ?
WARNING  Error during upload. Retry with the --verbose option for more details.                                                                                                                   
ERROR    HTTPError: 403 Forbidden from https://test.pypi.org/legacy/                                                                                                                              
         Invalid or non-existent authentication information. See https://test.pypi.org/help/#invalid-auth for more information.                                         

This blocked me for a good several hours. A smart friend recommended using hatch and using a __token__ and api token auth scheme, which also did not work. ultimately what it was was that i was skimming thru instructions from the default python tutorial and didnt realize that test.pypi.org was a different package site than pypi.org. so just remove it:

$ python3 -m twine upload dist/*

also need to make sure that you dont use hyphens in your package name

- report-env
+ report_env

You can see my basic template repo at https://github.com/swyxio/report-env