2015-05-22 3 views
3

Я попытался создать приложение с cx_Freeze 4.3.1 в Mac OS X Yosemite 10.10, но это не сработало. Я использую python версии 2.7 и использую Tkinter как мой графический интерфейс для разработки. Если я использую python setup.py bdist_mac на терминале, процесс сборки завершаться следующее сообщение об ошибке:Не удалось создать автономное приложение на Mac OS X Yosemite (10.10) с cx_Freeze

[Errno2] /Library/Frameworks/Tcl.framework/versions/8.5/TCL нет такого файла или каталога

Новейшая версия (8.5) Tcl/Tk уже установлена.

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

from cx_Freeze import setup, Executable 
build_exe_options = { 
"includes": [], 
"packages": [], 
'excludes' : ['collections.abc', 'urllib.sys'], 
"include_files": []} 

setup(
    name = "application", 
    version = "0.1", 
    description = "", 
    author = "", 
    options = {"build_exe": build_exe_options}, 
    executables = [Executable("applicaton.py")] 
) 

Кто-нибудь знает, что я могу сделать, чтобы он работал? Заранее спасибо!

ответ

0

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

  • Использование системы Python в Mac OS X (не рекомендуется)
  • Использование старых и никем не поддерживался cx_Freeze

Сначала давайте исправим установку Python! Рекомендуемый подход заключается в использовании Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
brew doctor 
brew update 
brew install python 

Теперь вы должны иметь хорошую установку Python в /usr/local, что это отдельно от системы Python Mac OS X, так что вы можете держать вещи в чистоте и отдельно. Вы также должны были следовать рекомендациям, приведенным выше. Как правило, это предполагает изменение вашего $PATH:

export PATH="/usr/local/bin:$PATH" 

Примечание: Обычно вы должны изменить ваш $HOME/.bashrc или $HOME/.profile в зависимости от того, как вы ваш терминал настроен.

Вы также должны иметь pip форму /usr/local/bin/pip.

Теперь на лучшей заменой для cx_freeze - Рекомендуется и более поддерживать подход в эти дни является использование pyInstaller:

pip install pyinstaller 
pyinstaller -F /path/to/my/script.py 

Для более сложных требований и строит, пожалуйста, следуйте документации pyinstaller на Using sepc files

Удачи!

Примечание: Этот должен также исправить TCL/TK проблемы и надеюсь!

+0

Я попытался использовать ваше рекомендуемое исправление установки python, но если я использую 'brew install python', появляется сообщение об ошибке, которое должно« заварить ссылку gdbm »перед установкой python'.Итак, если я попробовал это, есть еще одно сообщение, в котором говорилось: «Нельзя ли использовать symlink share/info/gdbm.info usr/local/share/info не записывается». Тем не менее, я просто продолжил ваши предложения и процесс сборки работал с pyInstaller! Спасибо за это. Но созданный файл является _Unit Executable File_, поэтому я не могу открыть приложение. Можете ли вы сказать мне, что происходит не так? – Tenshi

+0

Да, скорее всего, вам придется очистить свой ''/usr/local'' и обеспечить, чтобы у вашего локального пользователя были права на запись. Обычно я нахожу nuking содержимое ''/usr/local'' и удостоверяюсь, что у меня есть доступ на запись к нему, работает просто отлично :) Ничто обычно не пишет в ''/usr/local'' - кроме Homebrew, конечно :) –