나는 자이 썬 브리지 클래스에 자바를 구현하고있다. 내가 해결하려고하는 작업은 응용 프로그램 작업 디렉토리 (프로그램 실행 디렉토리라고도 함)에서 Python 모듈을 찾도록 자이 썬을 만드는 것이다.자이 썬에서 가져 오기 모듈 경로 설정 - 이상한 동작
나는 sys.path에에 System.getProperty("user.dir")
값을 추가하여 그렇게하고 있어요는 : C:\\Users\\vvlad\\IDEAProjects\\transform
응용 프로그램 디렉토리
python module 'user_module' was not found. sys.path: ['<other jars>\\Lib', '/<path to jython>/Lib', '__classpath__', '__pyclasspath__/', 'C:\\Users\\vvlad\\IDEAProjects\\transform']
ImportError: No module named scheduled_helper
at org.python.core.Py.ImportError(Py.java:290)
at org.python.core.imp.import_first(imp.java:750)
at org.python.core.imp.import_name(imp.java:834)
...
입니다 :
pySysState = new PySystemState();
//add working directory into sys.path
pySysState.path.append(new PyString(System.getProperty("user.dir")));
log_.info("Jython sys state initialized. sys.path: " + this.pySysState.path);
나는 ImportError를 예외를 얻을. sys.path
에서
은 다음과 같습니다 내가 수동으로 자이 썬 레지스트리 python.path 변수에 작업 디렉토리에 전체 경로를 지정할 때
가져 오기가 잘 작동합니다. 그리고 sys.path
다른 모양 : 디렉토리를 작업하는 sys.path
의 첫 번째 항목으로 올 때
>>sys.path: ['C:\\Users\\vvlad\\IDEAProjects\\transform', '<other jars path>\\Lib', '/<path to jython>/jython-2.5.2.jar/Lib', '__classpath__', '__pyclasspath__/', ]
그래서 가져 오기가 잘 작동합니다. 그러나 작업 디렉토리가 마지막 항목 일 때 실패합니다.
저는 Jython 2.5.2를 사용하고 IntelliJ IDEA 환경에서 Windows 컴퓨터에서 테스트를 실행합니다.
플랜 B는 PySysState
을 초기화하기 전에 자이 톤 레지스트리 python.path를 user.dir
값으로 설정하는 것이지만 일부 숨겨진 동작을 유발합니다. 여기