1 回答
TA贡献1884条经验 获得超4个赞
要求确实在 vagrant 环境中按预期安装,但是我记得它也可以在我的机器上本地工作。不幸的是,我不确定导致此错误的更改是什么,这可能是拉动的结果。
问题在于您尝试安装的软件包以及您的环境配置。我猜这个包在某个时候更新并坏了,因为他们在自述文件中添加了表情符号或其他东西:如果你看一下错误消息,你会发现在读入内容时有问题long_description,检查包的 setup.py,你可以找到开始附近的问题:
with open('README.md') as readme_file:
long_description = readme_file.read()这里的问题是,当您open的文件未指定模式时,它将是“文本”,因此 python 会自动将字节解码为 str,这很酷,除了它用于此类解码的编码是系统的“默认”编码(通过调用找到locale.getpreferredencoding(False)),这通常不是可取的。
您的 Vagrant 环境和开发人员的机器可能具有 UTF8 默认编码(就像现在大多数 unix 系统一样),同时您的本地 windows 框没有并且默认使用 CP1252,这会爆炸。可悲的是,我不是 Windows 用户(对于开发人员),所以我不知道如何更改“默认编码”,考虑到粗略搜索 SO 所产生的结果,这甚至可能是不可能的。
我会建议:
要求包作者修复他们的 setup.py 以明确指定
encoding打开文件时试图了解更多关于
getpreferredencoding's 内部决策的信息,以及是否可以通过 Windows 中的环境覆盖首选编码(显然可以/很容易覆盖标准流的编码,但chcp/set PYTHONIOENCODING显然不为 normal 做任何事情open)在适用于 Linux 的 Windows 子系统上运行你的东西,这可能开箱即用
PS:我冒昧地更新了您帖子的标签,因为 django、pip 和 egg 真的与实际问题无关
添加回答
举报
