2017-01-06 17 views
0

py2appを使ってスタンドアロンOS Xアプリに変えたいGUIを書いたことがあります。 Py2appは正常に次のコマンドを使用して、スタンドアロンのOS Xバンドルを生成した:pythonを使う3.6 + py2app:なぜpycファイルが生成されますか?

$ py2applet --make-setup superGui.py 
$ python3 setup.py py2app 

私のsetup.pyは次のようになります。

from setuptools import setup 

APP = ['/Users/username/PycharmProjects/gui/superGui.py'] 
DATA_FILES = [] 
OPTIONS = {'argv_emulation': True, 
    'plist': {'LSUIElement': True,}, 
    'includes':['rumps'],} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

私はthis documentationに基づいてrumpsパッケージとLSUIElementを追加しました。私はそれらの有無にかかわらず同じエラーがあります。

しかし私はアプリを実行しようとすると:私は私のログに次のエラーメッセージが表示されます

$ open dist/superGui.app 

06/01/17 12:42:51,321 superGui[55597]: File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
06/01/17 12:42:51,322 superGui[55597]: File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked 
06/01/17 12:42:51,322 superGui[55597]: File "<frozen importlib._bootstrap>", line 646, in _load_unlocked 
06/01/17 12:42:51,322 superGui[55597]: File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible 
06/01/17 12:42:51,322 superGui[55597]: File "scrapy/__init__.pyc", line 10, in <module> 
06/01/17 12:42:51,322 superGui[55597]: File "pkgutil.pyc", line 616, in get_data 
06/01/17 12:42:51,322 superGui[55597]: File "importlib/util.pyc", line 83, in find_spec 
06/01/17 12:42:51,322 superGui[55597]: AttributeError: 'NoneType' object has no attribute 'startswith' 

I以下の質問があります。

  1. この問題を解決するにはどうすればよいですか?

  2. "importlib/util.pyc"のfind_specを調べているときにエラーが発生したようです。なぜ私はPython 3.6を使用しているのでpy2appがpycファイルで動作するのか分かりません。 Python 3.6はpycファイルをもう使用しません。これは何らかの理由でpy2appが2.7のパスを使用するために起こりますか? (私もPython 2.7がインストールされています)

  3. IDLE 3.6で "importlib/util.pyc"を開くことはできません(これはPython 3.6がpycファイルをもうサポートしていないからです)。それはIDLE 2.7で私はちょうど白い画面でウィンドウを取得します。このファイルを正常に開いて、エラーをよりよく理解するにはどうすればよいですか?

ありがとうございます!

答えて

1

質問

  1. は、どのように私はこの問題を解決するのですか?

Pythonのパッケージ担当者は、この質問に対する回答に抵抗していることが知られています。

  1. "importlib/util.pyc"のfind_specを調べているときにエラーが発生したようです。

python 3.6とフリーズツールについてよく知らないけど、フリーズツールは新しいPythonパッケージ/ビルドに追いつくのにしばしば時間がかかることは知っています。 Python 3.6はかなり新しいものです。今では凍結が重要で、3.6を得ることができない場合は、当分はPython 3.5または3.4かもしれません。

  1. 「importlib/util.pyc」を正常に開いてエラーをよく理解するにはどうすればよいですか?

*.pyc.pycompiledバージョンです。問題をデバッグするために調べることはできません。 Pythonディストリビューションにはimportlib/util.pyがあります。これは調べることができます。

  1. これ以外に何かお試しください。

提案のカップル:

  1. issue for py2app

  2. は、pyinstallerなどの他の凍結ツールを試してみ上げ(まだ正式にサポートしていない3.6)

+0

こんにちは残念ながら、3.4にはならなかった。私も3.3を試してみます(py2appはpython2とpython3.3 +しかサポートしていないので、これ以上下がることはできません)。残念ながら、importlib/util.pyファイルはありません。私はPythonに少し失望していると言わざるを得ません。スタンドアロンのアプリケーションを作成するための裸のサポートがあります。 :( – titusAdam

+0

スタンドアロンのアプリは、うまくいきません。なぜなら、うまくいけないのはなぜか分かりませんが、言語そのものとその周辺の図書館のインフラストラクチャは、多くのプログラミング分野。 –

関連する問題