爲我的其中一個項目安裝依賴項時,出現錯誤的編組數據錯誤。如果我們使用標準virtualenv進行安裝,它可以正常工作而不會出錯。在zc.buildout中安裝私有python lib時出現錯誤的Marshall數據
這裏是我的zc.buildout的一部分(目前導致該錯誤被註釋掉的部分):
[buildout]
versions = versions
extensions = mr.developer
unzip = true
include-site-packages = false
# FIXME
# Attempting to install from here via buildout raises a bad marshal data error
# I should note that this errors does _not_ occur when we install in a
# clean virtual environment. It only happens in buildout.
# find-links = https://<myuser>:<mypass>@www.reportlab.com/pypi/simple/rlextra/
# Temporary solution, we included the package manually and will add it as
# a develop egg, then in the "django" part further down, we need to
# include the package in the extra-paths.
develop = ${buildout:directory}/libs/rlextra-3.1.9
回溯:
Getting distribution for 'rlextra==3.1.9'.
zip_safe flag not set; analyzing archive contents...
rlextra.thirdparty.xlrd.xlsx: module references __file__
rlextra.utils.buildutils: module references __file__
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1973, in main
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1954, in with_ei_usage
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1977, in <lambda>
File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()
File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 360, in run
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 584, in easy_install
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 634, in install_item
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 829, in install_eggs
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1109, in build_and_install
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 1095, in run_setup
File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 33, in run_setup
File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 81, in run
File "build/bdist.linux-x86_64/egg/setuptools/sandbox.py", line 35, in <lambda>
File "setup.py", line 78, in <module>
File "setup.py", line 73, in main
File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()
File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "build/bdist.linux-x86_64/egg/setuptools/command/bdist_egg.py", line 227, in run
File "build/bdist.linux-x86_64/egg/setuptools/command/bdist_egg.py", line 266, in zip_safe
File "build/bdist.linux-x86_64/egg/setuptools/command/bdist_egg.py", line 402, in analyze_egg
File "build/bdist.linux-x86_64/egg/setuptools/command/bdist_egg.py", line 433, in scan_module
ValueError: bad marshal data (unknown type code)
An error occured when trying to install rlextra 3.1.9. Look above this message for any errors that were output by easy_install.
有誰知道什麼可能會導致這問題以及如何解決問題。我們目前正在通過手動下載和包含軟件包來管理這個(正如你可以在buildout配置中看到的那樣),這並不理想。
什麼是完整的回溯錯誤? '糟糕的marshall數據'聽起來像你在庫中有'.pyc'文件,這些文件是用於錯誤的Python版本或者被破壞的。 – 2014-10-10 10:20:32
添加了回溯。這就是說我不認爲python版本可能是原因。我會檢查 – Andre 2014-10-10 10:41:58
zip安全掃描失敗;嘗試加載'.pyc'文件,該文件使用'marshall'來存儲代碼對象和常量值,並且加載'.pyc'文件是失敗的。由於pip不支持雞蛋,因此您不會看到這個問題。否則不清楚爲什麼你的蛋中的一個.pyc文件無法加載。 – 2014-10-10 10:54:46