Python setuptools:Bad Marshal数据

时间:2016-06-14 14:18:20

标签: python python-2.7 setuptools

当我尝试在python2上运行setup.py install时,我收到了这个错误的编组数据错误

running install
running bdist_egg
running egg_info
writing requirements to epigrass.egg-info/requires.txt
writing epigrass.egg-info/PKG-INFO
writing top-level names to epigrass.egg-info/top_level.txt
writing dependency_links to epigrass.egg-info/dependency_links.txt
writing entry points to epigrass.egg-info/entry_points.txt
reading manifest file 'epigrass.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'ez_setup.py'
warning: no files found matching 'INSTALL'
warning: no files found matching 'README'
no previously-included directories found matching 'demos/outdata-*'
no previously-included directories found matching 'docs/source*'
warning: no previously-included files matching '__pycache__' found under directory '*'
writing manifest file 'epigrass.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
creating stub loader for Epigrass/epimodels.so
byte-compiling build/bdist.linux-x86_64/egg/Epigrass/epimodels.py to epimodels.pyc
installing package data to build/bdist.linux-x86_64/egg
running install_data
copying epigrass.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying epigrass.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying epigrass.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying epigrass.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying epigrass.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying epigrass.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
Traceback (most recent call last):
  File "setup.py", line 40, in <module>
    data_files = [('/usr/share/pixmaps',['egicon.png']),('/usr/share/doc/epigrass/demos',demos),('/usr/share/doc/epigrass/',['docs/build/latex/Epigrass.pdf']),('/usr/share/applications',['epigrass.desktop'])]
  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 "/usr/local/lib/python2.7/dist-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/install.py", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/bdist_egg.py", line 209, in run
    os.path.join(archive_root, 'EGG-INFO'), self.zip_safe()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/bdist_egg.py", line 245, in zip_safe
    return analyze_egg(self.bdist_dir, self.stubs)
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/bdist_egg.py", line 355, in analyze_egg
    safe = scan_module(egg_dir, base, name, stubs) and safe
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/bdist_egg.py", line 392, in scan_module
    code = marshal.load(f)
ValueError: bad marshal data (unknown type code)

我的setup.py看起来像这样:

# -*- coding:utf8 -*-
from setuptools import setup
from Cython.Build import cythonize
from glob import glob
from Epigrass.__version__ import version


demos = glob('demos/*')
try:
    demos.remove('demos/CVS')
except:
    pass

setup(name='epigrass',
      version=version,
      author='Flavio Codeco Coelho, Claudia Torres Codeco',
      author_email='fccoelho@gmail.com',
      maintainer='Flavio Codeco Coelho',
      maintainer_email='fccoelho@gmail.com',
      url='http://epigrass.sourceforge.net',
      description='Epidemiological Geo-Referenced Analysis and Simulation System',
      long_description='EpiGrass is a simulator of epidemics over networks.  Its is a scientific tool created for simulations and scenario analysis in Network epidemiology.',
      download_url='http://sourceforge.net/project/showfiles.php?group_id=128000',
      license='GPL',
      packages=['Epigrass'],
      install_requires=["numpy >= 1.2", "networkx >= 1.1", "SQLAlchemy >= 0.7", "sqlsoup", "redis >= 2.4", "requests", "cython"],
      entry_points={
          'console_scripts': [
              'epirunner = Epigrass.manager:main',
          ],
          'gui_scripts': [
              'epigrass = Epigrass.epigrass:main',
              'epgeditor= Epigrass.epgeditor:main',
              'neteditor= Epigrass.neteditor:main'
          ]
      },
      ext_modules=cythonize('Epigrass/epimodels.py'),
      include_package_data=True,
      package_data={'': ['INSTALL', 'README', 'COPYING', 'epigrass.desktop', '*.rst', '*.tex', '*.png', '*.jpg']},
      data_files = [('/usr/share/pixmaps',['egicon.png']),('/usr/share/doc/epigrass/demos',demos),('/usr/share/doc/epigrass/',['docs/build/latex/Epigrass.pdf']),('/usr/share/applications',['epigrass.desktop'])]
)

1 个答案:

答案 0 :(得分:2)

所需要的只是在设置调用中添加了zip_safe=False参数。

它现在正常建立。