为什么pypi上传的POST请求数据中包含\r\n?

Why does pypi upload include \r\n in POST request data?

我最近将 Mac 升级到了 El Capitan。升级后,当我 运行 "python setup.py upload"

时,我开始看到奇怪的行为

上传命令生成的 POST 请求现在将 \r\n 插入每个数据字段。

它不会导致上传到 python.org/pypi/ 的任何问题,但我使用的是 djangopypi (github.com/benliles/djangopypi/) 并且该库会执行字符串比较 post 请求数据。我已经向我的 djangopypi 实例推送了一个补丁,它只删除了 POST 请求数据,但我仍然不明白为什么我的 OS 会添加这些字符?

这是服务器端 post 数据的示例。

 {u'comment': [u'\r\n\r'], 
u'license': [u'\r\nUNKNOWN\r'], 
u'protcol_version': [u'\r\n1\r'], 
u'metadata_version': [u'\r\n1.0\r'], 
u'author': [u'\r\nMe\r'], 
u'home_page': [u'\r\nhttp://me@sample.com\r'], 
u'md5_digest': [u'\r\nesdfg2345f361b982345sdfg9952a\r'], 
u'filetype': [u'\r\nsdist\r'], 
u':action': [u'\r\nfile_upload\r'], 
u'download_url': [u'\r\nUNKNOWN\r'], 
u'name': [u'\r\nsample.app\r'], 
u'platform': [u'\r\nUNKNOWN\r'], 
u'version': [u'\r\n2.0\r'], 
u'pyversion': [u'\r\n\r'], 
u'keywords': [u'\r\ndjango sample\r'], 
u'author_email': [u'\r\nme@sample.com\r'], 
u'summary': [u'\r\nSample Summary\r'],}

我不知道如何从我的客户端来看待它,帮助也很有帮助。

我找到了根本原因。

Distutils 已于 2014 年 9 月更新

https://bugs.python.org/issue10510