0

I'm having trouble uploading my package to pypi. I used to be able to just use python setup.py sdist upload -r pypi but this now causes an error:

Upload failed (400): requires: Must be a valid Python identifier.
error: Upload failed (400): requires: Must be a valid Python identifier.

I've tried a few things to get this working but everything has failed with the same error.

I removed the current dist, build and egg folders in my root directory. Then I increased my package version number by 1 micro version. I ensured my ~/.pypirc file is as it should be according to instructions:

[distutils]
index-servers = 
    pypi


[pypi]
username: c.welsh2
password: ...

and updated pip, twine and setuptools. I create a build using

python setuptools.py bdist_wheel 

which created the build in /package_root/dist/* and I try uploading to pypi using

twine upload dist/*

And again I get:

HTTPError: 400 Client Error: requires: Must be a valid Python identifier. for url: https://upload.pypi.org/legacy/

Does anybody know what is causing this problem?

For completeness, here is my setup file:

from distutils.core import setup
import  setuptools 


#version
MAJOR = 4
MINOR = 0
MICRO = 5

#=======
__version__ = '%d.%d.%d' % (MAJOR, MINOR, MICRO)

setup(
  name = 'PyCoTools',
  packages = ['PyCoTools'], # this must be the same as the name above
  version = __version__,
  description = 'A python toolbox for COPASI',
  author = 'Ciaran Welsh',
  requires=['lxml','argparse','pandas','numpy','scipy','matplotlib.pyplot','scipy','seaborn','sklearn'],
  package_data={'PyCoTools':['*.py','Documentation/*.pdf',
                             'logging_config.conf',
                             'Documentation/*.html','Licence.txt',
                             'ReadMe.md',
                             'Examples/KholodenkoExample/*',
                             'Examples/BioModelsWorkflowVersion1/*',
                             'Scripts/*.py',
                             'Tests/*.py',
                             'Tests/*.cps',
                             'PyCoToolsTutorial/*.pickle',
                             'PyCoToolsTutorial/*.py',
                             'PyCoToolsTutorial/*.ipynb',
                             'PyCoToolsTutorial/*.html',
                             'PyCoToolsTutorial/*.cps']},
  author_email = '--<hidden>',
  ##
  url = 'https://pypi.python.org/pypi/PyCoTools',
  keywords = ['systems biology','modelling','biological',
              'networks','copasi','identifiability analysis','profile likelihood'],
  license='GPL4',
  install_requires=['pandas','numpy','scipy','matplotlib',
                    'lxml'],
  long_description='''Tools for using Copasi via Python and calculating profile likelihoods. See Github page and documentation for more details''')
nalzok
  • 14,965
  • 21
  • 72
  • 139
CiaranWelsh
  • 7,014
  • 10
  • 53
  • 106

1 Answers1

0

Turns out there was quite an unforgiving typo. I couldn't give matplotlib.pyplot to the requires argument since its called matplotlib!

CiaranWelsh
  • 7,014
  • 10
  • 53
  • 106