Pythonリリースコンパイル(appとexe)

このQ&Aのポイント
  • Pythonをリリースコンパイル(.appと.exe化)する方法が分かりません。
  • py2appを利用してpyファイルをapp化しようとしていますが、モジュールのインポートに問題があります。
  • py2exeを利用してpyファイルをexe化しようとしていますが、まだ実験していません。
回答を見る
  • ベストアンサー

Pythonリリースコンパイル(appとexe)

お世話になっています. Pythonでプログラム(スクリプト?)を書いています. まず当方の開発環境は, Macintosh(Mac OS X Ver. 10.6.8) プロセッサ 2.7GHz Intel Core i7 です. Pythonをリリースコンパイル(.appと.exe化)したいのですが,やり方が分かりません. すぐに情報がほしいので,以下の1つでもご存知のものがあればご回答をお願い致します. よろしくお願いいたします. 1,【優先順位:高】 ◎pyファイルをapp化したい(利用環境:py2app) py2appを利用し,コンパイルしたのですが全てがコンパイルできません. 以下のモジュールをインポートしています. import sys import time import math import codecs import Tkinter import tkMessageBox import tkFileDialog as tkFileDialog import thread app化されたファイルを開くと,Windowは表示されるのですが機能しません. ボタンをクリックするとファイルを読み込み,データを計算し書き出すコードなのですが, その処理が一切されません. 2,【優先順位:高】 ◎pyファイルをapp化したい(利用環境:py2app) py2appを利用し,コンパイルしたのですが全てがコンパイルできません. 以下のモジュールをインポートしています. import sys import time import math import codecs import Tkinter import tkMessageBox import tkFileDialog as tkFileDialog import MeCab import thread app化されたファイルを開くと,Windowは表示されるのですが機能しません. ボタンをクリックするとファイルを読み込み,データを形態素解析し,それを計算したものを書き出すコードなのですが, その処理が一切されません. 3,【優先順位:中】 ◎pyファイルをexe化したい(利用環境:py2exe) py2exeを利用し,コンパイルしたいです. 以下のモジュールをインポートしています. import sys import time import math import codecs import Tkinter import tkMessageBox import tkFileDialog as tkFileDialog import MeCab import thread 上の2をexe化したいのですが,そもそもapp化が出来ないのでまだ実験していません. やり方をご存知のかたがいらっしゃいましたらこちらの回答もお願い致します. ------------------- 現在,py2appのみの実験ですが,別にapp化出来るのであればどのようなものを使っても大丈夫です. 何か他のツールをご存じの方がいらっしゃいましたらご教授お願い致します. よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

アプリケーション化だけができなくて、スクリプトは正常に動くのであれば、次の方法があります。多分GUIがあっても動くはずです。 1) 標準で入っているAutomatorの「シェルスクリプトを実行」でPythonのスクリプトを実行できます。アプリケーションとして保存します。 2) Platypusでも可能です。こちらの方が自由度が高いように思います http://sveinbjorn.org/platypus

mogeraccho
質問者

お礼

遅くなってしまい申し訳ありません。 ご回答有難うございます。 Platypusを使わせていただきます!

関連するQ&A

  • pythonのimportについて

    phthonの質問です. 「みんなのpython」という本で勉強中なのですが,turtle をimportしようとすると Tkinterがうまくconfigureされていないと出ているようなエラーが出ているのですがいまいち解決法がわかりません.PATHの問題かとも思い,いろいろいじったのですが… ちなみに開発環境はVMWareでUbuntuで行っています. 実行結果は以下のような感じです. >>> from turtle import * Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.5/lib-tk/turtle.py", line 18, in <module> import Tkinter File "/usr/local/lib/python2.5/lib-tk/Tkinter.py", line 38, in <module> import _tkinter # If this fails your Python may not be configured for Tk ImportError: No module named _tkinter 以上よろしくお願い致します.

  • mecab-pythonのインストールに失敗しまし

    先ほどmecabのインストールに成功して、今度はmecab-pythonをインストールしようとしたら、失敗したようです。 参考にしたサイトは以下です http://tatsuyaoiw.hatenablog.com/entry/20120414/1334405065 ●mecabのインストール直後 root@debian:/usr/local# mecab 参考までに、私がインストールした手順を下に書きます。 参考 名詞,サ変接続,*,*,*,*,参考,サンコウ,サンコー まで 助詞,副助詞,*,*,*,*,まで,マデ,マデ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 、 記号,読点,*,*,*,*,、,、,、 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 手順 名詞,一般,*,*,*,*,手順,テジュン,テジュン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 下 名詞,一般,*,*,*,*,下,シタ,シタ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 書き 動詞,自立,*,*,五段・カ行イ音便,連用形,書く,カキ,カキ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス 。 記号,句点,*,*,*,*,。,。,。 EOS ^Z ●ここからmecab-pythonインストール開始 root@debian:/usr/local# wget *ttp://mecab.googlecode.com/files/mecab-python-0.993.tar.gz --2015-01-08 06:05:07-- *ttp://mecab.googlecode.com/files/mecab-python-0.993.tar.gz mecab.googlecode.com (mecab.googlecode.com) をDNSに問いあわせています... 173.194.72.82 mecab.googlecode.com (mecab.googlecode.com)|173.194.72.82|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 63267 (62K) [application/x-gzip] `mecab-python-0.993.tar.gz' に保存中 100%[======================================>] 63,267 147K/s 時間 0.4s 2015-01-08 06:05:09 (147 KB/s) - `mecab-python-0.993.tar.gz' へ保存完了 [63267/63267] root@debian:/usr/local# tar zxvf mecab-python-0.993.tar.gz mecab-python-0.993/ mecab-python-0.993/MeCab.pyc mecab-python-0.993/LGPL mecab-python-0.993/BSD mecab-python-0.993/COPYING mecab-python-0.993/setup.py mecab-python-0.993/test.py mecab-python-0.993/MeCab.py mecab-python-0.993/GPL mecab-python-0.993/bindings.html mecab-python-0.993/README mecab-python-0.993/MeCab_wrap.cxx mecab-python-0.993/AUTHORS root@debian:/usr/local# cd mecab-python-0.993 root@debian:/usr/local/mecab-python-0.993# python setup.py build running build running build_py creating build creating build/lib.linux-x86_64-2.7 copying MeCab.py -> build/lib.linux-x86_64-2.7 running build_ext building '_MeCab' extension creating build/temp.linux-x86_64-2.7 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include/python2.7 -c MeCab_wrap.cxx -o build/temp.linux-x86_64-2.7/MeCab_wrap.o cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/MeCab_wrap.o -L/usr/local/lib -lmecab -lstdc++ -o build/lib.linux-x86_64-2.7/_MeCab.so root@debian:/usr/local/mecab-python-0.993# sudo python setup.py install running install running build running build_py running build_ext running install_lib copying build/lib.linux-x86_64-2.7/_MeCab.so -> /usr/local/lib/python2.7/dist-packages copying build/lib.linux-x86_64-2.7/MeCab.py -> /usr/local/lib/python2.7/dist-packages byte-compiling /usr/local/lib/python2.7/dist-packages/MeCab.py to MeCab.pyc running install_egg_info Writing /usr/local/lib/python2.7/dist-packages/mecab_python-0.996.egg-info ●ここからmecab-python試験 root@debian:/usr/local/mecab-python-0.993# python Python 2.7.3 (default, Jan 2 2013, 13:56:14) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import MeCab Traceback (most recent call last): File "<stdin>", line 1, in <module> File "MeCab.py", line 25, in <module> _MeCab = swig_import_helper() File "MeCab.py", line 17, in swig_import_helper import _MeCab ImportError: libmecab.so.2: cannot open shared object file: No such file or directory >>> import sys >>> import MeCab Traceback (most recent call last): File "<stdin>", line 1, in <module> File "MeCab.py", line 25, in <module> _MeCab = swig_import_helper() File "MeCab.py", line 17, in swig_import_helper import _MeCab ImportError: libmecab.so.2: cannot open shared object file: No such file or directory このOSにはipythonというものがあり、いわゆるインテリセンスがコンソールから使えるのですが、"MeCab"を補完しません。 どうすれば良いのでしょうか Linux未熟者は手を出さないほうが良かったかも

  • Pythonのバージョンアップについて

    CentOS5.5にはPython2.4がデフォルトで入っているのですが、Python2.6でスクリプトを作成する必要がありバージョンアップをしているのですが、dbusモジュールのインポートができず行き詰っております。 具体的には、Python2.4とdbus-pythonがインストールされている状態で、下記のURLを参考にyumでPython2.6をインストールしました。 環境としては「/usr/bin/phthon2.4」と「/usr/bin/phthon2.6」が出来た状態です。 libは「「/usr/lib/phthon2.4」と「/usr/lib/phthon2.6」です。 dbus-pythonのインストール先は「/usr/lib64/python2.4/site-packages/dbus」になります。 Python2.4を環境で下記のインポートは問題ありません。 >>>import dbus しかし、Python2.6環境で同じコマンドを実行すると下記のようなエラーになります。 >>> import dbus Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named dbus dbusの再インストールはリスクが高いと思い、モジュールのパスを通してみたところ下記のようなエラーになりました。 >>> import sys >>> sys.path.append('/usr/lib64/python2.4/site-packages') >>> import dbus Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.4/site-packages/dbus/__init__.py", line 1, in <module> from _dbus import * File "/usr/lib64/python2.4/site-packages/dbus/_dbus.py", line 45, in <module> import dbus_bindings ImportError: /usr/lib64/python2.4/site-packages/dbus/dbus_bindings.so: undefined symbol: Py_InitModule4 rpmでモジュールインストール先の変更や、Python自体をソースからインストールなどしてみたのですが、全てうまく行かない状態です。 Pythonバージョンアップ前にインストールされているモジュールの使い方をご存知の方がおられましたら、宜しくお願いします。

  • Python クラスとモジュールの違いについ

    プログラミング初心者です。※初めてのプログラミングでPythonの勉強中です。開始2週間程度です!! Pythonにおける(プログラム一般における?)クラスとモジュールの違いが分かりません。 ■現状の認識 ・モジュール 「***.py」といったような一つのファイル 他のモジュールからimportすることによって使用できる ・クラス 「***.py」といった一つのファイルの中に「class」として宣言できる 他のモジュールからインスタンスを生成して使用できる ■疑問点 上記を使い分ける意味 上記を使い分けた時のメリット、デメリット ※すべてモジュールとして作成して、使用したいときにimportすればいいのでは?と考えています。 現状Pythonの知識しかありませんが、プログラミング一般の知識のような気がしています。 プログラムに詳しい方よろしくお願い致します。

  • python: fork後の標準出力について

    言語はpythonです。(バージョン : 2.6.6) 以下の二つの単純なpythonスクリプト   test.py, exe_fork.py があります。 [test.py] #!/usr/bin/env python import subprocess proc = subprocess.Popen("./exe_fork.py", stdout=subprocess.PIPE) result = proc.stdout.read() print result [exe_fork.py] #!/usr/bin/env python import os import time pid = os.fork() if pid != 0: print "parent\n" else: time.sleep(5) print "child\n" [動作] 各スクリプトの動作としては、 test.pyがexe_fork.pyをPopen(stdoutはPIPEで受信)で実行し、 read()メソッドでexe_fork.pyの標準出力を受け取り、表示する。 exe_fork.pyはforkして、   親プロセスは"parent"と出力   子プロセスは5秒後に"child"と出力 です。 [実行結果] test.pyを実行すると 5秒後に   parent   child と表示されました。 これを実行する前は実行後すぐに "parent" と表示されてスクリプト終了するのだと予想しておりました。 しかし実際はexe_fork.pyの親と子の両方のプロセス終了するまで何も表示されず 両プロセスが終了した後にtest.pyのread()メソッドが完了するようです。 (どういうしくみでそうなっているのかよくわかりません。。) [質問・相談] test.pyでexe_fork.pyの親プロセスの標準出力だけを反映する方法ございませんでしょうか? なお、都合上、以下の条件を満たしている必要がございます。  条件1: test.py側のソースは変更しない  条件2: exe_fork.pyの親プロセスが終了した時点でtest.pyのread()メソッドが終了する  条件3: forkptyは使わない [参考]  exe_fork.py側で子プロセスのみsys.stdout.close()してみましたが結局exe_fork.pyの子プロセスが終了するまで(=5秒経過するまで)test.pyのread()メソッドは完了しませんでした。   よろしくお願いします。

  • PythonでSetWindowPosを使うにはどうしたら良いでしょうか?

    少し前から、Tkinterを使って居りウィンドウを常に最前面に表示したいと思い立ちwin32guiとwin32conと言うモジュールが必要で、インポートするところまで辿り着いたのは良いのですが、その後がよくわかりません。 実験的に from Tkinter import * import win32gui,win32con root = Tk() win32gui.SetWindowPos(root,win32con.HWND_TOPMOST,0,0,200,150,win32con.SWP_SHOWWINDOW) root.mainloop() のようなコードを実行してみたのですが以下のようなエラーメッセージが帰ってきます。 Traceback (most recent call last): File "C:\Documents and Settings\PC USER\デスクトップ\Python\q2.py", line 9, in -toplevel- win32gui.SetWindowPos(root,win32con.HWND_TOPMOST,1,1,100,50,win32con.SWP_SHOWWINDOW) AttributeError: Tk instance has no attribute '__int__' 引数の与え方もいろいろなサイトの切れ端を集めたような感じで書いてしまったのでそもそもの書き方が違っているのかもしれません。 私の検索が不足なのは重々承知ですが、よろしければ実際にはどのように書けばウィンドウを最前面に出すことができるのかと、エラーメッセージの具体的な意味を教えて欲しいです。お願いします。

  • pythonの文法について

    pythonの文法でfromは何を意味するものでしょうか? あとpy2exeでWindwosの実行ファイルができるらしいのですが 具体的な方法が知りたいです。 ActivePython 2.5を使っています。 あと、Cで拡張ライブラリを作成する場合はvc9,vc8, or vc6があればコンパイル可能でしょうか? サンプル等も知りたいです。

  • Pythonで、C言語のモジュールを利用したい!

    初めまして。 どなたか回答いただければ幸いです。 Pythonで利用できるモジュールを、C言語で作成したいと思っているのですが、方法が良くわかりません。 現在、Windowsで、CygwinのGCCを用いて、C言語をコンパイルしています。 GCCでコンパイル→DLLファイル作成→Pythonで利用? という大まかな流れかな~と思いまして、 見よう見まねで、 $gcc -shared test.o -o testmodule.dll というコマンドでDLLファイルを作成して、それをPythonで認識できるフォルダに格納して、Pythonのプロンプトで、 >>>import testmodule(あるいは、import testmodule.dll) とかやったのですが、 ImportError: DLL load failed: 指定されたモジュールが見つかりません。 と言われてしまいました。 鋭意調査中ですが、ご存知の方がおられましたら、 ご教授お願いいたします。

  • notepad++でのコンパイル設定

    コンパイラ:borland c++ compiler 5.5、エディタ:notepad++でプログラミング環境を構築しようと思っているのですが、コンパイル設定のところで詰まっています。 notepad++のNppExecというプラグインを使って, 以下のコマンドを記述したところ // save current file NPP_SAVE // compile & run with bcc D:\borland\bcc55\Bin\bcc32.exe "$(FULL_CURRENT_PATH)" -run コンパイルはできているのですが、実行モジュールやオブジェクト・ファイルの保存場所がnotepad++があるフォルダになるのです。生成された実行モジュールやオブジェクト・ファイルを任意のフォルダに保存するのはどうしたらいいのでしょうか? あとコンパイルしたhogehoge.exeなどをnotepad上で実行するのはどうしたらいいでしょうか?(手動でコマンドプロンプトを起動して実行するのは面倒なのでコンパイルしたときに実行してほしい) 教えていただきたいです。お願いします。

  • 作成するデスクトップアプリのzip化がしたい。

    まだ作成途中ですがこれをデスクトップアプリにしてzip化をしたいと思っています。 import tkinter root = tkinter.Tk() root.mainloop() しかし、pip install pyinstallerでインストールしようとしてもこのようなエラーが出てしまいます。どうすればいいですか。 PS C:\作業用Python> & C:/Users/user/anaconda3/python.exe c:/作業用Python/HelloWorld/install.py File "c:\作業用Python\HelloWorld\install.py", line 1 pip install pyinstaller ^^^^^^^ SyntaxError: invalid syntax PS C:\作業用Python>