Нет модуля с именем builtins


Я пытаюсь преобразовать мой скрипт .py в исполняемый файл с помощью py2exe. До сих пор у меня был ряд проблем, которые в основном решаются с помощью "options" в файле установки ниже. Но теперь у меня есть проблема, для которой я не смог найти решение, и мне интересно, были ли у других такие же проблемы и исправили ли они их.

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

Единственный другой пост, который я мог найти на эту тему, указывал, что 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()
)

Вот полный список того, как выглядит сообщение об ошибке:

сообщение об ошибке

3 12

3 ответа:

Я также нашел, используя 'pip install future' решен этот вопрос

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

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

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

С этим в качестве фона, вот ответ:

Было 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()
)

Запуск pip install future исправил эту ошибку для меня. Для совместимости с Python2. 7, пакет future должен быть добавлен к install_requires в setup.py.

Обратите внимание, что nosetests также терпит неудачу без matplotlib, но я не уверен, что добавление matplotlib в качестве зависимости имеет большой смысл.

Источник