私はPythonモジュールを持っていますが、通常のグローバル関数はありません。 C DLLだけを呼び出すことができる別のビジネスドメインのスクリプト環境から呼び出す必要があります。とにかく、私のPythonモジュールをビルドして、他のコードにDLLからエクスポートされた標準のC関数のように呼び出せるようにしますか?これはWindows環境用です。私はIronPythonを認識していますが、私の知る限り、C DLL関数として呼び出すことのできない.NETアセンブリのみをビルドできます。PythonモジュールからCのようなDLLをビルドする方法はありますか?
7
A
答えて
6
thisコーデプロイトの記事をご覧ください。一つの方法は、あなたのPython関数をCのDLLにラップし、これを呼び出し先に公開することです。
COMは、この問題を解決するためのバイナリプロトコルです。しかし、COMラッパーでこのpython dllをラップする必要があります。また、呼び出し側にもいくつかのコードを追加します。
3
標準的な解決策は、Pythonインタプリタ(既にC DLL)をアプリケーションに埋め込むことです。
https://docs.python.org/extending/windows.html#using-dlls-in-practice
2
Py2exeはPythonコードからコンパイルし、Pythonコード+インタプリタを埋め込むことによってCOM DLLを生成することができます。 AFAIKはまだ正規のDLLをサポートしていません。そのためには、Pythonの埋め込みについてのdirkgentlyの答えをご覧ください。
関連する問題
- 1. Python C Extensionをビルドしてモジュールからインポートする方法
- 2. C#DLLからクラスのインターフェイスを実装する方法はありますか?
- 3. FireFoxでJavaScriptからC#dllを呼び出す方法はありますか?
- 4. は、作業員からのURL、レールのモジュールからのリダイレクト(redirect_toのような)方法はありますか?
- 5. リフレクターのようなソフトウェアでDLLが開けないようにする方法はありますか?
- 6. py2exeをエラーなくビルドする方法はありますか?
- 7. モジュール(ライブラリ)をPythonプロジェクトにインポートする便利な方法はありますか?
- 8. 追加のアセンブリを参照するコマンドプロンプトからC#DLLをコンパイルする方法はありますか?
- 9. Webpack DLLビルドからモジュールを除外する
- 10. FlexからDLLからC++関数にアクセスする方法はありますか?
- 11. Pythonにはモジュールがありますが、C++には何がありますか?
- 12. あるpythonモジュールから別のpythonモジュールにコマンドライン引数を渡す方法
- 13. C#プロジェクトの「プロジェクトのみ」ビルドまたは再ビルドを行う方法はありますか?
- 14. pythonをインストールした公式バイナリからhomebrewでpythonモジュールをインストールする方法はありますか?
- 15. コードヤのビルドからandroid.permission.CAMERAを削除する方法はありますか?
- 16. Pythonモジュールのサイズにはどのような制限がありますか?
- 17. LabVIEWでビルドされたdllファイルをC#から呼び出す方法は?
- 18. Dllのようなプラットフォームに依存しないファイルを作成する方法はありますか?
- 19. Systemverilog:モジュール名をモジュールに渡す方法はありますか?
- 20. Visual StudioにDLLをアンロードする方法はありますか?
- 21. Pythonのモジュールを手動でインストールする方法はありますか?
- 22. C#のサブクラスからプロパティを集約するうえで、どのような方法がありますか?
- 23. trigger.ioのネイティブプラグインをビルドする方法はありますか?
- 24. コンソール/バッチファイル/ powershellファイルからUnityプロジェクトをビルドする方法はありますか?
- 25. python setup.pyビルドの指示にAC_CHECK_LIBのようなものがありますか?
- 26. C++カスタム修飾子をビルドする方法はありますか?
- 27. C++で同じDLLの中でdllの場所パスを取得する方法はありますか?
- 28. インポート中にPythonモジュールを無視する方法はありますか?
- 29. CでHTMLエンコーディング/エスケープを行う良いpythonモジュールはありますか?
- 30. PHP拡張モジュールでC++クラスをラップする方法はありますか?
+1:最も簡単な方法 – jfs