을 정식 이름을 변경, 내가라는 __init__.py
파일이 위와 같이로드됩니다. 공유 라이브러리는 Boost Python을 사용하여 C++로 구현됩니다.파이썬하십시오 _foomodule.so가 같은 디렉토리에</p> <pre><code>from _foo import * </code></pre> <p>하는 : 가져 오기 및 내 자신의 창조의 파이썬 패키지 디렉토리에서 현재 모듈에서
import foo
print foo.MyCppClass
이 작동하지만 특질과 :
이foo._foo.MyCppClass
그래서 MyCppClass
과 같이 존재하는 동안 : 클래스가 그것이 인쇄 만드는 전체 패키지 경로, 파이썬으로 알려진이 나를 말할 수 별칭은 foo
이고 foo.MyCppClass
은 정규 이름이 아닙니다. 약간 추한 것 이외에, 이것은 또한 비트가 절름발이가되도록합니다 : help(foo)
은 foo가 모듈 _foo
을 포함하고 있다고 말하고, help(foo._foo)
이라고 말하면 MyCppClass
에 대한 설명서를 얻을 수 있습니다.
__init__.py
에서 다르게 할 수있는 것이 있습니까? 그렇지 않으면 파이썬에서 정규화 된 이름으로 foo.MyCppClass
을 볼 수 있습니까?
저는 파이썬 2.7을 사용하고 있습니다. 솔루션이 2.6에서도 작동한다면 좋을 것입니다.
'_foo' 모듈이 파이썬으로 작성 되었다면 클래스의'__module__' 속성을 변경하도록 알려 드리겠습니다 (각 클래스를 정의한 직후에이 작업을 수행하거나 한번에 모두 수행하는 루프를 작성하십시오)하지만 그 속성은 아마도 당신의 C++ 클래스에 쓰기 가능하지 않습니다 ... 어쩌면 부스트에서 그 속성을 변경할 수있는 방법이 있을까요? (절대로 사용하지 마십시오.) – kindall
모듈 이름을 바꿀 수 있다고 생각합니다. 'foo._foo.MyCppClass'에서'foo.bar.MyCppClass'로 이동하고 싶지 않습니다 - 파이썬에서 정규 이름으로'foo.MyCppClass'만으로 끝내고 싶습니다. –