前提・実現したいこと
Mac の Python3.6.4 で Py2appを使ってアプリ化したいです。
https://gist.github.com/uchcode/fb2187111581032ec6b1d71e7e2d754f
こちらのページを参考に進めました。
Py2appを使ってできたアプリファイルをクリックして起動させると
エラーとなります。
エラーメッセージは以下の通りです。
どうすればよいでしょうか。
発生している問題・エラーメッセージ
myapp has encountered a fatal error, and will now terminate A Python runtime not could be located. you may need to install a framework build of Python, or edit the PyRuntimeLocations array in this application's info.plist file.
該当のソースコード
# -*- coding: utf-8 -*- import objc from Cocoa import * from PyObjCTools import AppHelper class UserInterface (NSObject): def init(self): self.window = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_(((0,0),(250.0,100.0)), NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask, NSBackingStoreBuffered, False) self.window.setTitle_("Welcome to Python") self.window.setReleasedWhenClosed_(True) self.window.center() self.btnHello = NSButton.alloc().initWithFrame_(((10, 10), (110, 80))) self.btnHello.setTitle_("Hello!") self.btnHello.setBezelStyle_(NSRegularSquareBezelStyle) self.btnHello.setSound_(NSSound.alloc().initWithContentsOfFile_byReference_("/System/Library/Sounds/Tink.aiff", True)) self.window.contentView().addSubview_(self.btnHello) self.btnGoodbye = NSButton.alloc().initWithFrame_(((130, 10), (110, 80))) self.btnGoodbye.setTitle_("Goodbye!") self.btnGoodbye.setBezelStyle_(NSRegularSquareBezelStyle) self.btnGoodbye.setSound_(NSSound.alloc().initWithContentsOfFile_byReference_("/System/Library/Sounds/Basso.aiff", True)) self.window.contentView().addSubview_(self.btnGoodbye) return self class AppDelegate (NSObject): def init(self): self.ui = UserInterface.alloc().init() self.ui.btnHello.setAction_("hello:") self.ui.btnGoodbye.setAction_("goodbye:") return self def hello_(self, sender): print("hello") def goodbye_(self, sender): print("goodbye") NSApp.terminate_(None) def applicationDidFinishLaunching_(self, notification): self.ui.window.makeKeyAndOrderFront_(None) def applicationShouldTerminateAfterLastWindowClosed_(self, sender): return True if _name_ == "__main__": delegate = AppDelegate.alloc().init() application = NSApplication.sharedApplication() application.setActivationPolicy_(NSApplicationActivationPolicyRegular) application.setDelegate_(delegate) application.activateIgnoringOtherApps_(True) AppHelper.runEventLoop()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
Anaconda は使っていますか?https://qiita.com/komi5320/items/a089b320bec8599253d1
Anacondaは使ってません。Anacondaで構築するべきでしょうか。
ググったら上記コメントの通り Anaconda を使っている場合に同じエラーが起きるという話があったので尋ねてみました。その Python3.6.4 はどうやって入れたものか書いておくと良いかもしれません。
ありがとうございます。pipでインストールしたと思います。
py2app は pip でインストールしているのですが、言いたかったのは Python3.6.4 そのものはどういう由来のものか?ということです。homebrew から入れた、Python.org からインストーラーをダウンロードして入れた、とか。というのも、"A Python runtime not could be located." というエラーが出ているように、アプリのパッケージに入れるべき python の場所をうまく見つけられていないようなので。
なるほどです。homebrewだと思います。https://qiita.com/7110/items/1aa5968022373e99ae28 こちらのページを参考に入れたと思います。

回答1件
あなたの回答
tips
プレビュー