私のプロジェクトでは、呼び出しのためのモジュールとNumpy/Scipyのようなライブラリが使われているので、アルゴリズムのいくつかはPythonで実装されています。今、これらのモジュールを私のUIに埋め込む必要があります(C#で実装され、Windows 7で実行されます)。私がPythonモジュールをDLLのようなファイルにパッケージ化する必要があるのは2つの理由があります(私は組み込みやすいとは言えないので.exeとしてパッケージ化したくありません)。最初の理由は簡単に呼び出すためであり、2番目の理由はアルゴリズムのソースコードを保護するためです。誰にも分かりますか?PythonモジュールとNumpy/Scipyなどの依存関係をC#呼び出しのDLLのような1つのファイルにパッケージ化する方法はありますか?
答えて
最後に、私はnuitkaを使って、私の問題を解決する:.NETではCPythonを埋め込む
のTry pythonnet。私のモジュールを.pydファイルにコンパイルし、Python.Runtime.dllの参照を追加してpythonnetを使ってモジュールをインポートすることができます。 私のコンパイル・コマンドは次のとおりです。nuitka --module --nofreeze-stdlib --recurse-all --recurse-not-to=numpy --recurse-not-to=sklearn --recurse-not-to=pywt --recurse-not-to=matplotlib --recurse-not-to=matplotlib.pyplot --recurse-not-to=scipy.io myfile.py
と私のC#のコードは次のとおりです。
PythonEngine.Initialize();
IntPtr pythonLock = PythonEngine.AcquireLock();
PythonEngine.RunSimpleString("import sys\n");
PythonEngine.RunSimpleString("sys.path.append('C:\\path\\to\\pyd')\n");
PyObject pModule = PythonEngine.ImportModule("modulename");
pModule.InvokeMethod("funcitonname", para1, para2);
私は2つの要件があります。最初の要件は、簡単にクラックされない形で私のPythonソースコードをパッケージ化する必要があるということです。もう1つの要件は、生成されたパッケージをC#コードに統合する必要があることです。 Pythonnetは私の2番目の要件を満たすことができますが、私の最初の要件はどうですか? –
あなたのコードをパッケージ化するpyinstallerを使用してください: https://github.com/pyinstaller/pyinstaller/issues/1801 – denfromufa
ええ、それは動作するかもしれませんが、最終的にはnuitkaを使用して私の問題を解決します。 –
- 1. 異なるバージョンの1つの依存関係を持つパッケージをビルドおよびデプロイする方法は?
- 2. 元のファイルに依存して1つのファイルを呼び出す方法は?
- 3. C#のDLL依存関係
- 4. パッケージ化ブラウザ/サーバCommonJSモジュール(依存関係あり)
- 5. このようなモジュールは(Framework内の)依存関係なし
- 6. Dllのようなプラットフォームに依存しないファイルを作成する方法はありますか?
- 7. スタンドアロン(DLLファイルの依存関係なし)の作成方法DelphiアプリケーションのようなC++ Builderコンソールアプリケーション?
- 8. dllにWindows 7ファイルの依存関係がありません
- 9. 2つのモジュールに同じ依存関係があります
- 10. PHP:パッケージ依存関係を1つのファイルにまとめました
- 11. 依存関係のヘルムチャート:正しくパッケージ化する方法
- 12. Pythonモジュールとその依存関係をファイルにコピーする方法
- 13. Makefileはルールの依存関係を呼び出さない
- 14. 文書にどのような依存関係がありますか?
- 15. DLL内の関数を呼び出すとどうなりますか
- 16. 依存関係を持つPythonプロジェクトをパッケージ化する標準的な方法は何ですか?
- 17. フォーカスに関係なくonKeyDownを呼び出す方法はありますか?
- 18. C#はjsonを依存関係なくシリアル化しますか?
- 19. モジュールと依存関係を持つJavaのようなタイプスクリプトプロジェクトを構造化するには?
- 20. 実行ファイルにgtk#依存関係をパッケージ化するには
- 21. 異なるファイルにある呼び出し元関数をどのように見つけ出しますか?
- 22. PythonモジュールからCのようなDLLをビルドする方法はありますか?
- 23. このDLL関数をC++/Cから呼び出す方法
- 24. Eclipseの1つのMavenプロジェクトに複数の依存関係を使用する方法はありますか?
- 25. JavaのC#DLLから関数を呼び出す方法は?
- 26. プログラムでMaven依存関係プラグインを呼び出す方法
- 27. Anaconda Cloudパッケージには依存関係がありますか?
- 28. NuGetでパッケージの依存関係を処理するスマートな方法はありますか?
- 29. 依存関係のないNuGetパッケージをインストールする方法はありますか?
- 30. virtualenvとシステムサイトのパッケージの依存関係が矛盾しているとどうなりますか?
うわー!これは素晴らしいです、pyinstallerの開発者はちょうどpyd nuitkaまたはcythonをコンパイルする必要があることを私に知らせました。 – denfromufa
おそらくあなたはpythonnetコミュニティと共有できるnuitkaの最小の例で要点やgithubプロジェクトを投稿できますか? – denfromufa