0

こんにちは、初めてここで質問します。通常、必要なものはすべてここで既に回答されていますが、これは本当に私を悩ませており、まだ答えを見つけることができません

Visual Studio 2010 を使用して Windows 7 64 ビットで IronPython (ver 2.7.2.1) GUI アプリを開発しています。アプリ全体を正常にコンパイルしましたが、コンパイルされたアプリから呼び出すときに奇妙な動作が見つかりました。 呼び出しを行う部分は次のとおりです。 sys.version.exe

clr.AddReference("StdLib")
import sys
from platform import python_version_tuple
print sys.version
print sys.path

そして、これはパスのメインスクリプトを呼び出した出力ですipy.exe:

D:\VisualStudioSolutions\MarketingAppSolution\MarketingApp>ipy MarketingApp.py 2.7.2 (IronPython 2.7.2.1 (2.7.0.40) on .NET 4.0.30319.239 (32-bit)) ['D:\VisualStudioSolutions\MarketingAppSolution\MarketingApp'..]

.exeコンパイルされたアプリを呼び出した結果は次のとおりです。


> D:\VisualStudioSolutions\MarketingAppSolution\MarketingApp>out\MarketingApp.exe
> 2.7.2 ()
> ['.', 'D:\\VisualStudioSolutions\\MarketingAppSolution\\MarketingApp\\out\\Lib', 'D:\\VisualStudioSolutions\\MarketingAppSolution\\Mar
ketingApp\\out\\DLLs']
> failed to parse CPython sys.version: '2.7.2 ()'

StdLibclr.AddReference("StdLib")IronPython の標準ライブラリのコンパイル済み dll の clr インポートです。そして、コンパイルされたアプリ内からIronPythonのモジュールの関数を
呼び出すと、エラーが発生したことがわかります。python_version_tupleplatformfailed to parse CPython sys.version: '2.7.2 ()'

それで、コンパイルプロセスで何が間違っていますか?
IronPython の標準ライブラリをアプリケーションと一緒に配布するには、どのように統合すればよいですか?
助けてくれてありがとう!:)

4

1 に答える 1

1

これは、ユーザーが作成したエンジンに関するIronPython の問題に関連しています。基本的に、IronPython はホストがエンジンのバージョン変数を設定することを期待していました。によって作成された実行可能ファイルpyc.pyはホストであり、これらの変数を設定しません。

これは 2.7.4 で適切に修正される予定ですが、数か月は公開されません。sys.versionそれまでの間、プラットフォームからインポートする前に、必要なバージョン文字列に一致するように手動で設定できます。

import sys
if sys.version == '2.7.2 ()':
    sys.version = '2.7.2 (IronPython 2.7.2.1 (2.7.0.40) on .NET 4.0.30319.239 (32-bit))'
于 2012-07-13T15:09:08.530 に答える