2014-12-16 3 views
7

Я пытаюсь преобразовать свой .py-скрипт в исполняемый файл с помощью py2exe. До сих пор у меня было несколько проблем, которые в значительной степени были устранены «опциями» в установочном файле ниже. Но теперь у меня есть проблема, из-за которой я не смог найти решение, и задаюсь вопросом, имели ли другие эту проблему и исправили ее.Нет модуля с именем builtins

Когда я запускаю файл установки ниже, используя «python setup.py py2exe», он дает мне исполняемый файл, но когда я его запускаю, он жалуется «Нет модуля с именем builtins».

Единственное сообщение, которое я мог найти по этому вопросу, указал, что встроенные функции - это python3, но я запускаю 2.7.

Оцените любые советы или советы по этому вопросу.

from distutils.core import setup 
import py2exe 

from distutils.filelist import findall 
import os 
import matplotlib 
matplotlibdatadir = matplotlib.get_data_path() 
matplotlibdata = findall(matplotlibdatadir) 



setup(
    console=['DET14.py'], 
    options={ 
      'py2exe': { 
         'packages' : ['matplotlib', 'pytz'], 
         'dll_excludes':['MSVCP90.DLL', 
             'libgdk-win32-2.0-0.dll', 
             'libgobject-2.0-0.dll', 
             'libgdk_pixbuf-2.0-0.dll'], 
         'includes':['scipy.sparse.csgraph._validation', 
          'scipy.special._ufuncs_cxx'] 
         } 
      }, 
# data_files=matplotlibdata_files 
    data_files=matplotlib.get_py2exe_datafiles() 
) 

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

error message

+0

Это полная ошибка? Нет стека вообще? –

+0

Хорошая точка ... Я добавил полное сообщение об ошибке, которое я получаю. –

+0

Точка трассировки точек на кусок кода, который упаковывается, делает что-то интересное.Вероятно, стоит подумать над тем, что именно. –

ответ

2

я, наконец, получил эту работу. Оказалось, что у меня были некоторые ошибки в исходном файле установки, некоторые из которых были совершенно глупыми, а некоторые просто не соответствовали моему отсутствию понимания того, как работают параметры команды настройки. Я добавлю, что этот последний класс ошибок был разрешен только с помощью скрытого и незаметного старого теста и ошибок в стиле Shelock Holmes. Под этим я подразумеваю, что я до сих пор не нашел никакой документации, которая вызывает смысл и использование параметров команды установки. Если кто-то имеет эту информацию и может передать ее, это будет оценено очень высоко.

При том, что в качестве фона, вот ответ:

Были 2 основные проблемы:

  1. Список пакетов в aboe файле настройки была крайне неполной. Я все еще не уверен, что правило состоит в том, что вам нужно перечислить каждый пакет, на который опирается ваша программа, и некоторые из них, на которые он может положиться, о которых вы не знали (например, pytz, например ...). Но когда я это сделал, у меня было что-то в этот момент, что я мог в итоге приступить к работе.

  2. Сообщение об ошибке в приведенном выше оригинальном вопросе выглядит как моя программа, зависела от вещи, называемой «patsy», и это меня смутило, потому что я понятия не имел, что это такое, но оказывается, что statsmodels (whihc ядро к моему проекту) имеет зависимость от patsy, поэтому его необходимо было включить в список «пакеты».

Ниже приведен файл настройки, который закончился работой. Я надеюсь, что это описание логики исправления окажется полезным для других, сталкивающихся с такой же проблемой.

from distutils.core import setup 
import py2exe 

from distutils.filelist import findall 
import os 
import matplotlib 
matplotlibdatadir = matplotlib.get_data_path() 
matplotlibdata = findall(matplotlibdatadir) 



setup(
    console=['DET14.py'], 
    options={ 
      'py2exe': { 
        'packages' : ['matplotlib', 'pytz','easygui',\ 
            'statsmodels','pandas','patsy'], 
        'dll_excludes':['MSVCP90.DLL', 
            'libgdk-win32-2.0-0.dll', 
            'libgobject-2.0-0.dll', 
            'libgdk_pixbuf-2.0-0.dll'], 
        'includes':['scipy.sparse.csgraph._validation', 
         'scipy.special._ufuncs_cxx'] 
        } 
     }, 
    data_files=matplotlib.get_py2exe_datafiles() 
) 
19

Я также обнаружил, используя «пункт установить будущее» решить эту проблему

Я получил информацию от здесь: https://askubuntu.com/questions/697226/importerror-no-module-named-builtins

Я надеюсь, что это проясняет это для других пользователей, как я, которые наткнулись ваш вопрос

+1

В Ubuntu «sudo apt-get install python-future» решил это для меня. –