2011-02-04 14 views
0

こんにちは私はデータベース上のレポートを作成するスクリプトと呼ばれるディレクトリにあるpythonスクリプトを選択するコンボボックスを持つ簡単なアプリケーションを構築しています。私はpy2exeを使ってプログラムをビルドし、ユーザーはpythonとsubmodualsをインストールする必要がなくなりました。py2exe gtkディレクトリからスクリプトを実行

どのようにpy2exe distを使ってこれらのスクリプトを実行するのですか?

私は、system( 'command')を使ってPython.exeを私のインストールディレクトリからコピーして、システム(os.curdir + 'python.exe' + script_to_run)を実行するだけでpython.exeがローカルコピーpython.dllと実行する必要のあるlibsのうち、reportlabとpyobdcとなるのは

でしょうか、それとも良い方法がありますか?

(それが容易になるだろう場合、私はまた、IronPythonの中でそれを構築する気にしないだろう)

答えて

0

マイケルFoordは、基本的な手順は、お使いのシェルアプリケーションを作成するためにあるEmbedding Ironpython from within Ironpython

次の例があります。実際の軽量GUIでは、EasyWPFがあります。 pycを使ってスクリプトをexeにコンパイルし、標準ライブラリをDLLにコンパイルします。スクリプトからstdoutをキャプチャする必要があるか、情報内の変数をスクリプトに渡す必要があるかによって、記事に示されているように複雑になることがあります。基本的な例を以下に示します。

import clr 
clr.AddReference('IronPython') 
clr.AddReference('System') 
clr.AddReference('mscorlib') 
clr.AddReference('Microsoft.Scripting') 
clr.AddReference('MyStandardLib') 
#Now you can reference things like 'import lxml as L ..... 

from IronPython.Hosting import Python 
from Microsoft.Scripting import SourceCodeKind 

spath = "C:/fred.py" # Path to script 


engine = Python.CreateEngine() 
#Now add your assemblies (like the standard library) to the engine 
for assembly in clr.References: 
    runtime.LoadAssembly(assembly) 

source = engine.CreateScriptSourceFromFile(spath, SourceCodeKind.Statements) 
mod = engine.CreateScope() 
runtime = engine.Runtime 

source.Execute(mod) 
関連する問題