Ошибка при вызове функции python из C - PullRequest
2 голосов
/ 14 апреля 2020

Я пытаюсь вызвать функцию python из программы C, но при попытке запустить скомпилированную программу я получаю сообщение об ошибке:

Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fff94214380 (most recent call first):
Abort trap: 6

Я использую python3.7, установленный с помощью anaconda3 в macOS High Sierra 10.13.5.

Для компиляции моего кода под названием callpy.c я использовал

gcc -o callpy callpy.c -I/Users/wernop/anaconda3/include/python3.7m -L/Users/wernop/anaconda3/lib/python3.7/config-3.7m-darwin -lpython3.7m

, который работает без ошибок или предупреждений.

I видел этот вопрос: Неустранимый Python Ошибка: initfsencoding: не удалось загрузить код файловой системы c и, следовательно, убедитесь, что установили переменные окружения

PYTHONPATH='/Users/wernop/anaconda3/bin/python3.7'
PYTHONHOME='/Users/wernop/anaconda3/bin/python3.7'

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 14 апреля 2020

Я не знаю, отвечу ли я на ваш вопрос, но когда я звоню Python из C, я использую PyObjects, и он отлично работает

У вас есть несколько примеров здесь: https://docs.python.org/3.8/extending/embedding.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...