easy_install ValueError:错误的编组数据(未知类型代码)

时间:2014-07-29 14:33:51

标签: python makefile easy-install buildout

我正试图在孤立的环境中进行扩建,但我得到了这个错误:

ValueError: bad marshal data (unknown type code)
An error occurred when trying to install djangorestframework-csv 1.3.3. Look above this message for any errors that were output by easy_install.
While:
  Installing django.
  Getting distribution for 'djangorestframework-csv'.
Error: Couldn't install: djangorestframework-csv 1.3.3
make: *** [bin/django] Error 1

我尝试使用谷歌搜索,发现5天前报告了这个完全相同的问题:

https://github.com/mjumbewu/django-rest-framework-csv/issues/18

尝试

时也会发生此错误
easy_install djangorestframework-csv==1.3.3

经过一段时间的谷歌搜索后,我发现当出现错误的.pyc文件时会发生此错误。

报告此问题的人说,他通过删除pycache解决了这个错误。我尝试搜索pycache并删除所有名为__pycache__的文件夹,但它没有帮助。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

任何人在tarball中意外地创建了分发包含 __pycache__目录。

如果您在buildout中使用download-cache选项,则可以通过打开已下载的djangorestframework-csv-1.3.3.tar.gz文件并删除有问题的目录来解决此问题。

${buildout:download-cache}/dist目录中找到该文件,并在没有违规目录的情况下重新打包:

tar xzvf djangorestframework-csv-1.3.3.tar.gz
rm -rf djangorestframework-csv-1.3.3/rest_framework_csv/__pycache__/
tar czvf djangorestframework-csv-1.3.3.tar.gz djangorestframework-csv-1.3.3

现在再次运行你的buildout,它将使用固定的缓存文件。

不幸的是,我们不能在这里使用find-links来指向固定分布,因为它只会在index(例如默认的PyPI)没有包时使用。

相关问题