Skip to content

How to upload a new package on PyPi

Giovanni Pizzi edited this page Jun 2, 2020 · 5 revisions

Instructions on how to upload a package on PyPi

Since I always forget, here are some instructions.

Only once

  • pip install twine (only once)

  • create ~/.pypirc:

      [distutils]
      index-servers =
        pypi
        pypitest
    
      [pypi]    
      username=gio.piz
      
      [pypitest]
      repository=https://testpypi.python.org/pypi
      username=gio.piz
    

Troubleshooting

If there are strange errors (with PyOpenSSL, alert internal error, ContextualVersionConfict idna, ...), one possible solution (tested on Ubuntu) is to run

pip install --upgrade pyopenssl
pip install --upgrade requests

Commits and tags in the code

  • First, update __version__ in the code
  • Also update the version in the setup.json file!
  • merge also into master (via a PR!)
  • commit and create a new tag 'vX.X.X' from the commit in master (remember to push the tag as well!)

Then:

Update pip

  1. clear the build/, dist and qe_tools.egg-info folders

  2. git pull, then check out the tag to be sure of the version we are at: git checkout vX.Y.Z

  3. python setup.py sdist bdist_wheel --universal

  4. upload the package

    twine upload dist/*

(to test: pip install qe-tools)