簡體   English   中英

pyTables py2exe示例未運行

[英]pyTables py2exe example does not run

我有基於此示例的代碼:

from tables import *

class Particle(IsDescription):
    name = StringCol(16) # 16-character String
    idnumber = Int64Col() # Signed 64-bit integer
    ADCcount = UInt16Col() # Unsigned short integer
    TDCcount = UInt8Col() # Unsigned byte
    grid_i = Int32Col() # Integer
    grid_j = IntCol() # Integer (equivalent to Int32Col)
    pressure = Float32Col() # Float (single-precision)
    energy = FloatCol() # Double (double-precision)

h5file = openFile("tutorial.h5", mode="w", title="Test file")
group = h5file.createGroup("/", "detector", "Detector information")
table = h5file.createTable(group, "readout", Particle, "Readout example")

print h5file

particle = table.row

for i in xrange(10):
    particle['name'] = 'Particle: %6d' % i
    particle['TDCcount'] = i % 256
    particle['ADCcount'] = (i*256) % (1<<16)
    particle['grid_i'] = i
    particle['grid_j'] = 10 - i
    particle['pressure'] = float(i*i)
    particle['energy'] = float(particle['pressure']**4)
    particle['idnumber'] = i * (2**34)
    particle.append()

table.flush()

table = h5file.root.detector.readout
pressure = [x['pressure'] for x in table.iterrows() if x['TDCcount']>3 and
                                                       20<=x['pressure']<50]

print pressure

h5file.close()

我正在使用py2exe和以下setup.py文件進行編譯:

import os
import shutil

print '*\n*\nBegin clean up...\n*\n*'

build_folder_name = 'build'
dist_folder_name = 'dist'

build_path = os.path.abspath(os.path.join(os.curdir, build_folder_name))
if os.path.exists(build_path):
    print 'removing folder: {0}'.format(build_path)
    shutil.rmtree(build_path)

dist_path = os.path.abspath(os.path.join(os.curdir, dist_folder_name))
if os.path.exists(dist_path):
    print 'removing folder: {0}'.format(dist_path)
    shutil.rmtree(dist_path)

print '*\n*\nClean up done. Setup will now begin...\n*\n*'

from distutils.core import setup
import py2exe

import numpy # http://stackoverflow.com/questions/15478230/pack-a-software-in-python-using-py2exe-with-libiomp5md-dll-not-found

excludes_list = []

includes_list = [
    'numpy',
    'tables',
    'tables.utilsextension'
]

setup(
    console=['run_me.py']
    , options={
        'py2exe': {
            'excludes': excludes_list
            , 'includes': includes_list
            , 'dll_excludes': ['w9xpopen.exe', 'MSVCP90.dll', 'libzmq.dll']
        }
    }
)

生成的可執行文件無法運行並產生以下錯誤:

 Traceback (most recent call last):
  File "run_me.py", line 1, in <module>
  File "tables\__init__.pyc", line 82, in <module>
  File "tables\utilsextension.pyc", line 12, in <module>
  File "tables\utilsextension.pyc", line 10, in __load
  File "utilsextension.pyx", line 275, in init tables.utilsextension (tables\utilsextension.c:15283)
ImportError: No module named _comp_lzo

我試圖了解為什么會發生此錯誤,以及如何解決該錯誤。 任何指針將不勝感激。

我的環境是Win7和Python 2.7.3。 其他軟件包是通過pip或從非官方Windows二進制文件安裝的

將“ tables._comp_lzo”添加到includes_list中可以解決有問題的用戶的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM