Фатальная ошибка python h нет такого файла или каталога
Я пытаюсь ускорить ответ здесь с помощью 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 автоматически.
Читайте также: