VS2010 で boost::python を使用して DLL を構築し、一部の関数を Python モジュールにエクスポートしました。
myDLL.cpp:
std::string greet() { return "hello, world"; }
int square(int number) { return number * number; }
BOOST_PYTHON_MODULE(getting_started1)
{
// Add regular functions to the module.
def("greet", greet);
def("square", square);
}
ここまでは、すべて問題なくコンパイルされます。次に、c:\myDLL\Debug にある myDLL.dll と myDLL.lib ファイルを取得します。
ブースト ドキュメント (http://wiki.python.org/moin/boost.python/SimpleExample) によると、これを PYTHONPATH に追加する必要があるため、c:\myDLL\Debug を追加しました: PYTHONPATH: C:\Python27 ;c:\myDLL\Debug;
次に、.py ファイルからインポートを試みます。
import getting_started1
print getting_started1.greet()
number = 11
print number, '*', number, '=', getting_started1.square(number)
私はまた、myDLL からのインポートのgetting_started1、およびgetting_started1 からのインポート*、および可能なすべての並べ替えの組み合わせを試しました。
私のモジュールをどのように呼び出すべきか誰か教えてもらえますか? ありがとう
編集: cgohlke によると、VS でコンパイルすると、PYTHONPATH のどこかに gets_started1.pyd が存在するはずですか? このファイルは存在しません... VS2010 で別の設定をする必要がありますか? デフォルトの win32 DLL プロジェクトがあります。しかし、ブースト ドキュメントには、「この共有ライブラリをビルドして PYTHONPATH に配置すると」と書かれていますが、Windows 上の共有ライブラリは DLL ではありませんか? エルゴ、DLL は PYTHONPATH にある必要がありますか?