From http://jamie.curle.io/blog/my-first-experience-adding-package-pypi/ :
python setup.py upload
running upload
error: no dist file created in earlier command
I thought I was going mad because I could see the dist file, it was right there in all of [its] tar and gzipped glory.
“earlier command” is misleading, as the dist file must be created by the same command line that calls upload (for now at least; see #12944). The error message should be clearer, and if the doc doesn’t explain how this works, it should be improved too.