Как использовать python .h - PullRequest
0 голосов
/ 26 января 2020

Я включил Python .h в мою программу, когда я компилирую программу, она отображает несколько ошибок, сообщающих об ошибке «Невозможно открыть несколько библиотек»:

Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 7: Unable to open include file 'patchlevel.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 8: Unable to open include file 'pyconfig.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 9: Unable to open include file 'pymacconfig.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 50: Unable to open include file 'pyport.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 52: Unable to open include file 'pyatomic.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 63: Unable to open include file 'pymath.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 64: Unable to open include file 'pytime.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 65: Unable to open include file 'pymem.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 67: Unable to open include file 'object.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 68: Unable to open include file 'objimpl.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 69: Unable to open include file 'typeslots.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 71: Unable to open include file 'pydebug.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 73: Unable to open include file 'bytearrayobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 74: Unable to open include file 'bytesobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 75: Unable to open include file 'unicodeobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 76: Unable to open include file 'longobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 77: Unable to open include file 'longintrepr.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 78: Unable to open include file 'boolobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 79: Unable to open include file 'floatobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 80: Unable to open include file 'complexobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 81: Unable to open include file 'rangeobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 82: Unable to open include file 'memoryobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 83: Unable to open include file 'tupleobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 84: Unable to open include file 'listobject.h'
Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 85: Unable to open include file 'dictobject.h'
Error E2228 C:\Borland\bcc55\INCLUDE\Python.h 85: Too many error or warning messages
*** 26 errors in Compile ***

, и я этого не сделал включить любую из упомянутых выше отсутствующих библиотек в мою программу

#include<stdio.h>
#include<Python.h>
int main()
{
     Py_SetProgramName(argv[0]);  
     Py_Initialize();
     PyRun_SimpleString("print("hello")");
     Py_Finalize();
     return 0;
}

Ответы [ 2 ]

1 голос
/ 26 января 2020

Я не включил ни одной из упомянутых выше отсутствующих библиотек в мою программу

Вы сделали это технически. Включая Python.h, вы фактически включаете все заголовки, которые он включает и в зависимости от которых. Если их там нет, ваш код не может быть скомпилирован. Вы можете найти более подробную информацию о том, как правильно построить CPython в Вводном руководстве .

1 голос
/ 26 января 2020

Сообщение об ошибке

Error E2209 C:\Borland\bcc55\INCLUDE\Python.h 7: Unable to open include file 'patchlevel.h'

указывает, что ошибка (не удается открыть файл) была введена файлом python.h в строке 7. Возможно, вы включили не все эти файлы заголовков, но ваш python.h может.

Однако

  1. попытайтесь выяснить, где эти файлы хранятся на вашем компьютере. Затем
  2. узнайте, как сообщить компилятору, где искать дополнительные включаемые файлы, и укажите местоположение, в котором вы их нашли. Без этого компилятор просто просматривает некоторые предварительно сконфигурированные каталоги, которых в вашем случае недостаточно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...