Próbuję rozpowszechniać mój projekt open source, Melopy, ale zarządzanie pakietami sprawia mi problemy od samego początku. Dzisiaj zarejestrowałem się dla PyPI, ale po uruchomieniu python setup.py sdist upload
mam do czynienia z następującym błędem.UnicodeDecodeError z PIP?
running sdist
running check
reading manifest template 'MANIFEST.in'
not writing to manually maintained manifest file 'MANIFEST'
making hard links in Melopy-0.1.0...
Creating tar archive
Traceback (most recent call last):
File "setup.py", line 19, in <module>
setup(**config)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/sdist.py", line 168, in run
self.make_distribution()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/sdist.py", line 448, in make_distribution
owner=self.owner, group=self.group)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 392, in make_archive
owner=owner, group=group)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/archive_util.py", line 237, in make_archive
filename = func(base_name, base_dir, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/archive_util.py", line 101, in make_tarball
tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 1687, in open
_Stream(name, filemode, comptype, fileobj, bufsize),
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 431, in __init__
self._init_write_gz()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 459, in _init_write_gz
self.__write(self.name + NUL)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 475, in __write
self.buf += s
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 1: ordinal not in range(128)
Zawartość pliku setup.py jest następująca.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
config = {
'name': u'Melopy',
'author': u'Jordan Scales',
'author_email': u'[email protected]',
'description': u'Python music library',
'long_description': open(u'README.txt').read(),
'packages': ['melopy'],
'version': u'0.1.0',
'url': u'https://github.com/prezjordan/Melopy',
'license': 'LICENSE.txt',
'classifiers': []
}
setup(**config)
# Licensed under The MIT License (MIT)
# See LICENSE file for more
Jaka jest zawartość pliku "README.txt"? Jeśli ten plik zawiera znaki inne niż ASCII, powinieneś użyć 'codecs.open' i użyć poprawnego kodowania. – Bakuriu