0
에 평을 가져 오는 방법 :부스트 파이썬 내 MAIN.CPP 수입 파이썬 파일
bp::object main = bp::import("__main__");
bp::object globals = main.attr("__dict__");
bp::object module = import("strategy", "strategy.py", globals);
bp::object Strategy = module.attr("Strategy");
bp::object strategy = Strategy();
하지만 난 strategy.py에 내가 가지고, 어떤 자기 평 파일을 정의 가져올 :
from model import Model
File "strategy.py", line 2, in <module>
from model import Model
ImportError: No module named model
내가 부스트 파이썬 가져 오기가 잘 작동하지 않고 strategy.py을 테스트, 내가 그것을 어떻게 해결할 수 : 내가 ./main 실행할 때
, 그것은 오류를 준다? 댄에
이 아마도 당신이의 위치를 추가해야 그 .py 파일을'sys.path'에? –
나는 똑같은 것을 생각하고있다. 문제는, 만약 내가이 파일들을 다른 PC에 복사한다면, 수동으로 그것들을 sys.path에 복사해야만한다는 것이다. –
나는 automagic 솔루션을 염두에두고있다. 이 계획을 어떻게 세우려는지 자세히 설명해 주시겠습니까? 분명히 바이너리, strategy.py 스크립트와 그 의존성이 있습니다. | 예를 들어, 파이썬을 내장 한 내 응용 프로그램 중 하나에서 루트 스크립트 디렉토리와 기본 스크립트 이름을 구성에 전달한 다음 main()을 가져 오기 전에 [this] (https://pastebin.com/5Y85yd0J)와 같이 실행합니다. 스크립트는 간단한'bp :: import (name.c_str())'(스크립트 디렉토리에있는 많은 의존성을 가져옵니다)를 사용합니다. –