import urllib.parse возвращает "ImportError: нет модуля с именем parse" для jython 2.7.0
Я использую jython 2.7.0 с Java 1.7.0_45 на Windows 7. Я вызываю мой модуль со следующим кодом Java
try{
python.exec("import sys");
python.exec("sys.path.append('c:/Python')");
python.exec("import myModule");
python.set("var1", new PyString(remote));
python.exec("myModule.score(var1)");
} catch (org.python.core.PyException e) {
System.out.println (e.toString());
System.out.println ("\n");
}
Код Python для myModule.score начинается с
import json
import urllib.parse
Это вызывает ошибку
import urllib.parse
ImportError: No module named parse
Я подозреваю, что это связано с изменением формата Python между версиями и функциями, которые стали устаревшими. Мне было интересно, знает ли кто-нибудь, какая версия Python jython 2.7.0 использует и какой будет правильный синтаксис для вызова urllib.parse (который прекрасно работает в Python 3.5).
2 ответа
Согласно Python 2.x urlparse
модульная документация -
Модуль urlparse переименован в urllib.parse в Python 3
Так что вы должны использовать urlparse
модуль для Python 2.7
(Или Jython 2.7, который будет внутренне использовать Python 2.7). Ты должен сделать -
import urlparse
И используйте это как таковое.
Jython 2.7 использует стандартную библиотеку Python 2.7. Номер версии специально разработан для соответствия с номером версии CPython.