Вы импортируете config в util и util в config, что вызовет эту ошибку (создайте перекрестную петлю). удалите from utils import *
из config.py, а затем попробуйте это.
И в main.py вам не нужно импортировать from config import *
, если вы не используете переменные из config непосредственно в main ()
Никогда не пробовал его. Но я недавно наткнулся на проект под названием Jepp, который может представлять интерес для Вас.
Jepp встраивает CPython в Java. Безопасно использовать в в большой степени потоковой среде, это довольно быстро, и ее устойчивость является основной функцией и целью.
Если вы хотите вызов функций 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 разрабатывается медленно, но неуклонно и может стать полезным через несколько месяцев или около того.