2015-11-27 4 views
0

Я пытаюсь заморозить проект python в exe. Когда я открываю командную строку в каталоге «Уведомление» и запускаю cxfreeze notifier/main.py, проект компилируется правильно. Я пытаюсь получить тот же результат из setup.py, чтобы при запуске python setup.py build_exe exe ​​с его зависимостями создается так же, как и раньше.Включить файлы python в подкаталог cxfreeze

Это структура каталогов:

Notifier/ 
|notifier/ 
|- __init__.py 
|- main.py 
|- sender.py 
|- request.py 
|setup.py 

Когда я бегу python setup.py build_exe, я заметил, что под Missing Modules: имеет sender imported from main__main__. И когда я запускаю main.exe от Notifier/build/exe.win32-2.7, возникает следующая ошибка.

Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module> 
    exec(code, m.__dict__) 
    File "notifier/main.py", line 1, in <module> 
ImportError: No module named sender 

Вот мой setup.py:

from cx_Freeze import setup, Executable 
import requests.certs 

options = { 
    'build_exe': { 
     'include_files': [(requests.certs.where(), 'cacert.pem')] 
    } 
} 

setup(
    name='Notifier', 
    version='0.1', 
    license='MIT', 
    author='David Corbin', 
    #install_requires=['requests', 'websocket', 'cx_Freeze'], 
    options=options, 
    executables=[Executable("groupmenotifier/main.py")] 
) 

ответ

0

Вам нужен файл с именем __init__.py в папке notifier.

+0

__init__.py

+0

Пожалуйста, измените свой ответ и внести коррективы. – JRodDynamite

+0

@JasperXu Что должно быть в файле '__init __. Py'? Я создаю файл в 'notifier', но ничего не изменил. –

0

Мне пришлось добавить каталог groupmenotifier/ в путь поиска, чтобы cxfreeze мог его найти и использовать.

sys.path.append(os.getcwd()+"\\groupmenotifier") 
Смежные вопросы