java, использующая jython, имеет неправильную версию python

#java #python #jython

#java #python #jython

Вопрос:

Я пытаюсь использовать java для запуска функции python через jython.jar . Я использую модуль python, загруженный из Интернета, для которого требуется python 2.6 или выше. Я почти уверен, что мой python версии 2.7.2. Однако, когда я пытаюсь запустить программу Java, она продолжает сообщать об обнаружении python 2.5. Как я могу это решить?

Мой код:

 public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       ...
                //cmd
                String command = ""xml\"   name2   """;
                PythonInterpreter python = new PythonInterpreter(null, new PySystemState());
                PySystemState sys = Py.getSystemState();
                sys.path.append(new PyString("C:\Python27\Lib\site-packages"));
                python.execfile("work1.py");
            }
        }
    }
}
 

И ошибка:

 Exception in thread "main" Traceback (most recent call last):   File "work1.py", line 8, in <module>
    import networkx as nx   File "C:Python27Libsite-packagesnetworkx__init__.py", line 39, in <module>
    raise ImportError(m % sys.version_info[:2]) ImportError: Python version 2.6 or later is required for NetworkX (2.5 detected). Java Result: 1
 

Комментарии:

1. Пробовали ли вы очевидное, а именно, загрузить последнюю версию Jython и заменить свой jython.jar ? Похоже, у вас более старая версия Jython.

Ответ №1:

Вам нужно использовать Jython 2.7b3, бета-версия 2.7 добавляет языковую совместимость с CPython 2.7 … http://comments.gmane.org/gmane.comp.lang.jython.devel/6145

2.7 beta 4 выйдет в июле, и после этого функция зависнет. Я предлагаю вам присоединиться к списку рассылки python-dev, чтобы быть в курсе новых выпусков. Надеюсь, это поможет

Комментарии:

1. aissacf верен. jython — это альтернативная реализация Python. Он не использует версию Python, установленную на компьютере. aka. CPython. т.е. jython. jar — ЭТО python. Вам нужна правильная версия.