自分で作成したPythonパッケージディレクトリに、次のような__init__.pyファイルがあります。
from _foo import *
同じディレクトリに、上記によってロードされる_foomodule.soがあります。共有ライブラリはC++で実装されています(Boost Pythonを使用)。これは私に言うことができます:
import foo
print foo.MyCppClass
これは機能しますが、癖があります。クラスは完全なパッケージパスによってPythonに認識されているため、次のように出力されます。
foo._foo.MyCppClass
したがってMyCppClass、のエイリアスとして存在しますが、その正規名fooではありません。foo.MyCppClass少し醜いことに加えて、これはhelp()少し不自由になります:help(foo)fooにはモジュールが含まれていると_foo言うでしょう、そしてあなたが言う場合にのみ、あなたはhelp(foo._foo)のドキュメントを手に入れますMyCppClass。
__init__.pyPythonがfoo.MyCppClass正規名と見なすようにするために、別の方法で実行できることはありますか?
私はPython2.7を使用しています。ソリューションが2.6でも機能するのであれば素晴らしいと思います。