2012-09-17 22 views
7

Estoy intentando distribuir mi proyecto de código abierto, Melopy, pero la administración de paquetes me ha estado dando problemas desde que comencé. Hoy, me registré para PyPI, pero al ejecutar python setup.py sdist upload me encuentro con el siguiente error.UnicodeDecodeError con 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) 

El contenido de setup.py es el siguiente.

#!/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 
+0

¿Cuál es el contenido del archivo 'README.txt'? Si ese archivo contiene caracteres no ascii, debe usar 'codecs.open' y usar la codificación correcta. – Bakuriu

Respuesta

4

Parece que estás siendo golpeado por this bug. En teoría, el problema debería solucionarse pasando la versión como una cadena regular.

+1

Gracias, solo tuve que eliminar Unicode de todos los contenidos de la configuración de 'setup.py'. No estoy seguro de dónde estaban en primer lugar ... –

Cuestiones relacionadas