Этот вопрос закрыт для ответов, так как повторяет вопрос Как исправить ошибку " directory or file not found Python.h "?
@Andrei1penguin1

Почему не происходит перемещение в нужную папку?

Доброго времени суток, есть код на C:
#include <stdio.h>
#include <unistd.h>
#include <C:\\Python39\\include\\Python.h>

int main() {
  chdir("C:\\Python39\\include");
  Py_Initialize();
  PyRun_SimpleString("print('Hello!')");
  Py_Finalize();
}

По логике вещей после выполнения chdir текущий каталог должен меняться на указанный в аргументе функции, но летит ошибка при компиляция о невозможности найти первый включенный файл в Python.h, значит смена директории не происходит
Что я делаю не так?
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Потому что компилятор ищет Python.h во время компиляции. В это время никакой main() не выполняется и chdir ничего не делает. Надо указать компилятору, где искать хедеры.

Как вы компилируете? Вы под виндовс, видимо, сидите - у вас visual studio или вы gcc используете? Или что-то еще? Используете ли вы cmake или какую-то еще систему сборки? Приведите буквально ту команду/ваши действия, которые приводят к выводу на экран ошибки.

В итоге все должно вылиться в дописывание флага -I"c:\Python39\include" к команде компиляции. Если какая-то система сборки, то прямо в файле проекта можно как-то указать эту опцию.

Сам же include нужно делать без всяких путей, просто #include <Python.h>.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы