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.

Другие вопросы по тегам