Вызовите модули Python от Java

Вы импортируете config в util и util в config, что вызовет эту ошибку (создайте перекрестную петлю). удалите from utils import * из config.py, а затем попробуйте это.

И в main.py вам не нужно импортировать from config import *, если вы не используете переменные из config непосредственно в main ()

7
задан Bill the Lizard 2 October 2011 в 00:25
поделиться

2 ответа

Никогда не пробовал его. Но я недавно наткнулся на проект под названием Jepp, который может представлять интерес для Вас.

Jepp встраивает CPython в Java. Безопасно использовать в в большой степени потоковой среде, это довольно быстро, и ее устойчивость является основной функцией и целью.

4
ответ дан 7 December 2019 в 01:27
поделиться

Если вы хотите вызов функций C из Java, JNA (Java Native Access), вероятно, лучший вариант. JNA позволяет вам вызывать функции в собственных библиотеках без необходимости писать связующий код C (как вам пришлось бы делать при использовании JNI) и автоматически сопоставляет примитивные типы данных в Java и C. Простой пример может выглядеть следующим образом:

import com.sun.jna.Native;
import com.sun.jna.Library;

public class PrintfWrapper {
    public interface CLibrary extends Library {
        CLibrary INSTANCE = (CLibrary)Native.loadLibrary("c", CLibrary.class);
        void printf(String formatString, Object... args);
    }

    public static void main(String[] args) {
        CLibrary.INSTANCE.printf("Hello, world\n");
    }
}

Однако с igraph все усложняется, потому что igraph использует множество структур данных, которые не могут быть отображены непосредственно в их Java-аналоги. Существует проект под названием JNAerator , который должен иметь возможность генерировать исходный код JNA из файлов заголовков igraph, но я никогда не пробовал его, и есть вероятность, что результаты все равно потребуют некоторой ручной настройки.

Также обратите внимание, что Java-интерфейс для igraph разрабатывается медленно, но неуклонно и может стать полезным через несколько месяцев или около того.

4
ответ дан 7 December 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: