2010-10-20 14 views
2

Я пытаюсь создать бинарный файл с py2exe, вот последние строки py2exe выхода:py2exe, SQLAlchemy и cx_Oracle: ImportError: Нет модуль с именем оракул

*** copy dlls *** 
copying C:\Apps\Python27\python27.dll -> C:\Documents and Settings\nikolay.derka 
ch\Desktop\UMTScellsChecking\UMTScellsChecking\dist 
setting sys.winver for 'C:\Documents and Settings\nikolay.derkach\Desktop\UMTSce 
llsChecking\UMTScellsChecking\dist\python27.dll' to 'py2exe' 
copying C:\Apps\Python27\w9xpopen.exe -> C:\Documents and Settings\nikolay.derka 
ch\Desktop\UMTScellsChecking\UMTScellsChecking\dist 
copying C:\Apps\Python27\lib\site-packages\py2exe\run.exe -> C:\Documents and Se 
ttings\nikolay.derkach\Desktop\UMTScellsChecking\UMTScellsChecking\dist\UMTSCell 
Test.exe 
The following modules appear to be missing 
['_scproxy', 'sqlalchemy.cprocessors', 'sqlalchemy.cresultproxy', 'win32api', 'w 
in32con', 'win32pipe'] 

*** binary dependencies *** 
Your executable(s) also depend on these dlls which are not included, 
you may or may not need to distribute them. 

Make sure you have the license if you distribute any of them, and 
make sure you don't distribute files belonging to the operating system. 

    USER32.dll - C:\WINDOWS\system32\USER32.dll 
    SHELL32.dll - C:\WINDOWS\system32\SHELL32.dll 
    WSOCK32.dll - C:\WINDOWS\system32\WSOCK32.dll 
    ADVAPI32.dll - C:\WINDOWS\system32\ADVAPI32.dll 
    WS2_32.dll - C:\WINDOWS\system32\WS2_32.dll 
    KERNEL32.dll - C:\WINDOWS\system32\KERNEL32.dll 

Мой оригинальный питон скрипт запускается нормально, но когда я исполняю в результате бинарного я получаю следующее:

C:\Documents and Settings\nikolay.derkach\Desktop\UMTScellsChecking\UMTScellsChe 
cking\dist>UMTSCellTest.exe 
Traceback (most recent call last): 
    File "UMTSCellTest.py", line 53, in <module> 
    File "sqlalchemy\engine\__init__.pyc", line 244, in create_engine 
    File "sqlalchemy\engine\strategies.pyc", line 46, in create 
    File "sqlalchemy\engine\url.pyc", line 99, in get_dialect 
ImportError: No module named oracle 

Кроме того, вот мой setup.py, который я использую для py2exe:

from distutils.core import setup 

import py2exe, sys 

sys.argv.append('py2exe') 

setup(
     options = {"py2exe": { 
     'bundle_files': 2, 
     'compressed': True, 
     'dll_excludes': ['oci.dll']}}, 
     console=[{'script': 'UMTSCellTest.py'}] 
    ) 

Любые идеи, что это может означать ImportError? Спасибо заранее.

ответ

1

Возможно, вам потребуется указать явно py2exe для импорта пакета с опцией packages. Хороший способ проверить - посмотреть в каталоге сборки, и на самом деле увидеть модуль оракула.

options = dict(optimize=2, 
      bundle_files=2, 
      compressed=True, 
      packages=["oracle"], 
      dll_excludes=['oci.dll']) 

setup_dict['options'] = {"py2exe":options} 
0

Просто добавьте импорт sqlalchemy.dialects.oracle в верхней части основного модуля youre.