py2exe не может найти модуль - PullRequest
2 голосов
/ 04 сентября 2011

У меня есть приложение Python, которое отлично работает. Теперь я использую py2exe для создания исполняемого файла Windows этого приложения, однако в результате exe завершается неудачно с жалобой на отсутствие модуля configobj

Traceback (most recent call last):
  File "file1.py", line 1, in <module>
  File "file2.pyc", line 10, in <module>
ImportError: No module named configobj

Строка 10 в file2.py просто from configobj import ConfigObj

Я попытался явно добавить configobj в список упакованных модулей, указав аргумент -i configobj, но затем запуск py2exe завершился неудачно с похожей ошибкой:

running py2exe
creating  C:\path\to\proj\dist
*** generate typelib stubs ***
collected 0 stubs from 1 type libraries
*** searching for required modules ***
Traceback (most recent call last):
  File " C:\path\to\proj\py2exe_setup.py", line 18, in <module>
    options = {"py2exe": {"typelibs": [('{00020813-0000-0000-C000-000000000046}', 0, 1, 5)]}},
  File "C:\Python26\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python26\lib\distutils\dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
    cmd_obj.run()
  File "C:\Python26\lib\site-packages\py2exe\build_exe.py", line 243, in run
    self._run()
  File "C:\Python26\lib\site-packages\py2exe\build_exe.py", line 296, in _run
    self.find_needed_modules(mf, required_files, required_modules)
  File "C:\Python26\lib\site-packages\py2exe\build_exe.py", line 1297, in find_needed_modules
    mf.import_hook(mod)
  File "C:\Python26\lib\site-packages\py2exe\mf.py", line 719, in import_hook
    return Base.import_hook(self,name,caller,fromlist,level)
  File "C:\Python26\lib\site-packages\py2exe\mf.py", line 136, in import_hook
    q, tail = self.find_head_package(parent, name)
  File "C:\Python26\lib\site-packages\py2exe\mf.py", line 204, in find_head_package
    raise ImportError, "No module named " + qname
ImportError: No module named configobj

Модуль configobj установлен на моем компьютере в расположении по умолчанию

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import configobj
>>> print configobj.__version__
4.7.2
>>> import py2exe
C:\Python26\lib\site-packages\py2exe\build_exe.py:16: DeprecationWarning: the sets module is deprecated
  import sets
>>> print py2exe.__version__
0.6.9

Что я делаю не так?

1 Ответ

1 голос
/ 08 сентября 2011

Переустановка configobj из источника исправила проблему. Будь я проклят, если я знаю, почему

...