ustawienie ścieżki modułu importu w Jythonie - dziwne zachowanie

Buduję klasę Java do Jythona. Zadaniem, które próbuję rozwiązać, jest sprawienie, by Jython szukał modułów pythona w moim katalogu roboczym aplikacji (znanym również jako katalog wykonywania programu).

Robię to dołączającSystem.getProperty("user.dir") wartość do sys.path:

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);

Otrzymuję wyjątek ImportError:

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)
    ...

GdzieC:\\Users\\vvlad\\IDEAProjects\\transform to katalog aplikacji.

Wsys.path na to wygląda:

Import działa prawidłowo, gdy ręcznie określę pełną ścieżkę do katalogu roboczego w zmiennej Jython Registry python.path. Isys.path wygląda inaczej:

>>sys.path: ['C:\\Users\\vvlad\\IDEAProjects\\transform', '<other jars path>\\Lib', '/<path to jython>/jython-2.5.2.jar/Lib', '__classpath__', '__pyclasspath__/', ]

Import działa więc dobrze, gdy katalog roboczy jest pierwszym wpisemsys.path. Ale kończy się niepowodzeniem, gdy katalog roboczy jest ostatnim wpisem.

Używam Jython 2.5.2 i uruchamiam testy na komputerze z systemem Windows ze środowiska IntelliJ IDEA.

Plan B byłby dla mnie ustawieniem python rejestru Jythonuser.dir wartość przed inicjalizacjąPySysState - ale to wprowadziłoby pewne ukryte zachowania.

questionAnswers(1)

yourAnswerToTheQuestion