Фатальная ошибка python h нет такого файла или каталога

Обновлено: 07.07.2024

Я пытаюсь ускорить ответ здесь с помощью Cython. Я пытаюсь скомпилировать код (после выполнения cygwinccompiler.py взломать здесь), но получите fatal error: numpy/arrayobject.h: No such file or directory. compilation terminated ошибка. Может ли кто-нибудь сказать мне, проблема ли это в моем коде или в какой-то эзотерической тонкости Cython?

  • вы можете добавить тег для какой ОС вы используете?
  • @tcaswell 64-битная Windows 7.
  • добавлен тег windows, надеюсь, это поможет увидеть эту проблему людям, которые умеют использовать окна (в отличие от меня).
  • 1 Я нашел это. Некоторая терминология у меня над головой, но я собираюсь проверить это.
  • Отвечает ли это на ваш вопрос? Заставьте distutils искать файлы заголовков numpy в правильном месте

В твоем setup.py , то Extension должен иметь аргумент include_dirs=[numpy.get_include()] .

Кроме того, вам не хватает np.import_array() в вашем коде.

Пример setup.py:

Для однофайлового проекта, подобного вашему, другой альтернативой является использование pyximport . Вам не нужно создавать setup.py . вам даже не нужно открывать командную строку, если вы используете IPython . все это очень удобно. В вашем случае попробуйте запустить эти команды в IPython или в обычном скрипте Python:

Конечно, вам может потребоваться отредактировать компилятор. Это делает импорт и перезагрузку одинаковыми для .pyx файлы, как они работают для .py файлы.

Ошибка означает, что файл заголовка numpy не найден во время компиляции.

  • Куда мне добавить export линия? В моем setup.py файл?
  • Нет, это команда оболочки. Запустите его в своей оболочке, затем начните компиляцию.
  • @NoobSaibot в оболочке (где вы запускаете python setup.py ) запустить export .. сначала команда. Он устанавливает переменные окружения оболочки, а не имеет ничего общего с [pc] ython.
  • @tcaswell: Я так и думал. Я использую cmd, и получил это 'export' is not recognized as an internal or external command, operable program or batch file. ошибка . просто не могу победить с этим .
  • 4 @NoobSaibot, вы получаете ответы lunix на то, что пахнет проблемой Windows .

Простой ответ

Более простой способ - добавить путь к вашему файлу distutils.cfg . Это путь от имени Windows 7 по умолчанию C:\Python27\Lib\distutils\ . Вы просто утверждаете следующее содержание, и оно должно сработать:

Весь конфигурационный файл

Чтобы дать вам пример того, как может выглядеть файл конфигурации, весь мой файл гласит:

Он должен уметь делать это в cythonize() функция, как упомянуто здесь, но она не работает из-за известной проблемы

Если вам лень писать установочные файлы и выяснять путь для включаемых каталогов, попробуйте cyper. Он может скомпилировать ваш код Cython и установить include_dirs для Numpy автоматически.

Читайте также: