2014-01-30 33 views
9

使用python3.4 w/pip试图安装django-floppyforms==1.1并得到这个non-ASCII payload error。我没有收到python2.7这个错误。这是怎么回事?python 3 pip安装非ASCII有效负载错误

Downloading/unpacking django-floppyforms==1.1 (from -r ../requirements/base.txt (line 22)) 
    Downloading django_floppyforms-1.1-py33-none-any.whl (51kB): 51kB downloaded 
Cleaning up... 
Exception: 
Traceback (most recent call last): 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/commands/install.py", line 274, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/req.py", line 1206, in prepare_files 
    for subreq in dist.requires(req_to_install.extras): 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/_vendor/pkg_resources.py", line 2236, in requires 
    dm = self._dep_map 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/_vendor/pkg_resources.py", line 2429, in _dep_map 
    self.__dep_map = self._compute_dependencies() 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/_vendor/pkg_resources.py", line 2451, in _compute_dependencies 
    for req in self._parsed_pkg_info.get_all('Requires-Dist') or []: 
    File "/home/admin/.virtualenvs/py3/lib/python3.4/site-packages/pip/_vendor/pkg_resources.py", line 2421, in _parsed_pkg_info 
    self._pkg_info = Parser().parsestr(self.get_metadata(self.PKG_INFO)) 
    File "/usr/local/lib/python3.4/email/parser.py", line 70, in parsestr 
    return self.parse(StringIO(text), headersonly=headersonly) 
    File "/usr/local/lib/python3.4/email/parser.py", line 60, in parse 
    return feedparser.close() 
    File "/usr/local/lib/python3.4/email/feedparser.py", line 170, in close 
    self._call_parse() 
    File "/usr/local/lib/python3.4/email/feedparser.py", line 163, in _call_parse 
    self._parse() 
    File "/usr/local/lib/python3.4/email/feedparser.py", line 449, in _parsegen 
    self._cur.set_payload(EMPTYSTRING.join(lines)) 
    File "/usr/local/lib/python3.4/email/message.py", line 311, in set_payload 
    " payload") from None 
TypeError: charset argument must be specified when non-ASCII characters are used in the payload 

Storing debug log for failure in /tmp/tmpletnstcp 
+0

我从'tox'运行针对的Python 3.4.0b2测试时运行'pip'时得到了类似的错误。如果我手动创建并激活virtualenv,并使用其“pip3.4”,则不会发生这种情况。 – sastanin

+0

问题中的包是否与Python 3兼容(从根本上改变了底层的unicode字符串)? –

+0

@MikkoOhtamaa是的。 –

回答

6

这是由于Python-3.4.0b3中的一个错误。这个bug已经修复2014-02-07 18:30(http://bugs.python.org/issue20531)。

您可以使用Python-3.4.0rc1或通过email包复制Python 3.4.0b3来修复它,如http://bugs.python.org/issue20531#msg210508所确认。

我刚刚与Python-3.4.0rc1上挤压测试,并成功地被安装了软件包:

$ pip install django-floppyforms==1.1 
Downloading/unpacking django-floppyforms==1.1 
    Downloading django_floppyforms-1.1-py33-none-any.whl (51kB): 51kB downloaded 
Installing collected packages: django-floppyforms 
Successfully installed django-floppyforms 
+0

http://i.imgur.com/xk003.gif –

+0

@RamRachum不用客气;-) – wolfrevo