2

.net Framework 4.5を使用していますが、4.0でも同じ結果が得られています。

python.netを初期化するための必要最低限​​のコンソールアプリケーションを作成すると、期待どおりに機能します。winformsアプリケーションから同じことを行おうとすると、「DLL'python27'を読み込めません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)」が表示されます。

winformsアプリケーションから機能しているコンソールアプリケーションを参照し、python.netを初期化するメソッドを呼び出すと、同じことが起こります。ビルド設定は、両方のプロジェクトのデフォルトです。

python27を実行可能フォルダーに直接配置することもできましたが、同じエラーが発生するため、両方のプロジェクトが任意のCPU用に構成されている場合でも、これは32ビットと64ビットの問題である可能性があります。

4

2 に答える 2

2

もう少し突っ込んだ後、私は2つのことを発見しました。

ビルドターゲットをx86に変更すると、不足しているDLLエラーが解決されましたが、PythonEngine.Initialize()を呼び出すと、アプリケーションが不可解にクラッシュしました。他のコードが実行される前に初期化が行われるようにすることで、これを解決することができました。

于 2012-07-12T05:40:28.947 に答える
0
  1. dllの読み込みの問題を解決するために、python.runtime.dll(xxx \ Python36 \ Lib \ site-packagesにあります)への参照を追加しました。
  2. ビルドターゲットをx64に変更して、PythonEngine.Initialize()の問題を解決しました。そして、@Bicubicはx86に変更することで彼の問題を解決しました。したがって、c#ターゲットをAnyCPUにすることはできません。両方試してください。
  3. py.import( "xxx")エラーを解決するために、xxx.pyをxxx\Python36フォルダーに移動しました。

私は今いくつかの楽しみを持つことができます:)皆さんの幸運と楽しみを願っています!

于 2019-04-08T02:12:58.280 に答える