Setuptools - Upload Error With Python 3.5

Came across a funky error attempting to upload a package to PyPi using Python 3.5

$ python setup.py sdist bdist_wheel upload ... Traceback (most recent call last): File "setup.py", line 45, in <module> install_requires=['django>=1.10'] File "/usr/lib64/python3.5/distutils/core.py", line 148, in setup dist.run_commands() File "/usr/lib64/python3.5/distutils/dist.py", line 955, in run_commands self.run_command(cmd) File "/usr/lib64/python3.5/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/usr/lib64/python3.5/distutils/command/upload.py", line 63, in run self.upload_file(command, pyversion, filename) File "/usr/lib64/python3.5/distutils/command/upload.py", line 162, in upload_file body.write(value) TypeError: a bytes-like object is required, not 'str' 

The setup.py file was along these lines

#!python setup( name='project-name', ... platforms=['any'], license='MIT License', classifiers=( 'Environment :: Web Environment', 'Framework :: Django', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', ), packages=find_packages(), install_requires=['django>=1.10'] ) 

Took me a while to figure out what the issue was, and why the error, but alas is appears that the classifiers needs to be a list and not a tuple.

So changing the setup.py file to something like this

#!python setup( name='project-name', ... platforms=['any'], license='MIT License', classifiers=[ 'Environment :: Web Environment', 'Framework :: Django', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', ], packages=find_packages(), install_requires=['django>=1.10'] ) 

Fixed the issue.


map[code_copy_button:true email:greg@reinbach.com name:Greg Reinbach]

python3.5setuptools

213 Words

2016-10-12 20:00 -0400