Я пытаюсь запустить пример «Встраивание Python в другое приложение», найденный по адресу https://docs.python.org/3/extending/embedding.html#very-high-level-embedding на моем MacOS.Хотя я могу заставить программу компилироваться с моим дистрибутивом Anaconda Python3.7 и SCons, при ее запуске всегда выдается следующая ошибка:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Я попробовал совет, данный в этом посте StackOverflow Как устранить неполадки Python «Не удалось найти независимые от платформы библиотеки » , установив для моей переменной PYTHONHOME значение / usr / local, мой корневой каталог Anaconda и родительский каталог исполняемого файла Python.Я также попытался установить мою переменную PYTHONPATH для каждой из папок.Тем не менее, установка PYTHONHOME приведет к сбою моей установки Anaconda Python с сообщением:
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
У меня нет настроенной виртуальной среды Python, и Python отлично работает за пределами этого примера встраивания и установки PYTHONHOMEпеременная.Кроме того, родительская папка двоичного файла Anaconda Python является первой папкой в моей переменной PATH, поэтому я знаю, что Py_Initialize не найдет установку Python по умолчанию для MacOS по умолчанию.Я попытался удалить и переустановить Anaconda, но та же ошибка сохраняется.Следующий код - мой файл SConstruct, использованный для компиляции примера.
env = Environment(
CPPPATH=[
"/Users/user/anaconda3/include",
"/Users/user/anaconda3/include/python3.7m"
],
LIBPATH=["/Users/user/anaconda3/lib/python3.7/config-3.7m-darwin"],
LIBS=["dl", "python3.7m"]
)
env.Program("wrapper", "wrapper.c")
Любая помощь или совет приветствуются.Спасибо.