[python] Remarques lors de la tentative d'utilisation de numpy avec Cython

introduction

Ce que je veux faire cette fois, c'est ctypedef numpy.float64_t DOUBLE_t Je veux définir. Pour faire ça Vous devez faire cimport numpy. Je veux faire ces deux "ctypedef" et "cimport".

L'environnement ressemble à ceci. OS X, Yosemite Cython 0.23.4 Python 3.4.3

J'obtiens l'erreur suivante lors de la compilation de cython.

Reportez-vous à la page Documentation Cython 0.23.2: Construction de code Cython et créez les deux scripts suivants.

test.pyx


import numpy
cimport numpy
ctypedef numpy.float64_t DOUBLE_t

setup.py


from distutils.core import setup
from Cython.Build import cythonize

setup(
    name = 'test',
    ext_modules = cythonize('test.pyx')
    )

Lorsque j'utilise ceci pour exécuter python setup.py build_ext --inplace, j'obtiens l'erreur suivante.

error.


sample.c:250:10: fatal error: 'numpy/arrayobject.h' file not found
#include "numpy/arrayobject.h"
         ^
1 error generated.
error: command 'clang' failed with exit status 1

J'ai eu une erreur indiquant que le fichier est manquant. Il semble que le chemin soit différent, donc si vous regardez le site un peu plus tôt, Quelque chose comme ça documentation Cython 0.23.2: Compilation

Often, Python packages that offer a C-level API provide a way to find the necessary include files, e.g. for NumPy:

include_path = [numpy.get_include()]

Cela semblait être courant. Pour le moment, mettons cela dans setup.py.

setup.py


from distutils.core import setup
from Cython.Build import cythonize
import numpy

setup(
    name = 'test',
    ext_modules = cythonize('test.pyx')
    include_path = [numpy.get_include()]
    )

Lorsque j'essaye d'utiliser ceci, j'obtiens à nouveau une erreur

error.


Unknown distribution option: 'include_path'

On m'a dit qu'il n'y avait pas une telle option. En regardant stackoverflow et ainsi de suite, il semble que tout le monde n'utilise pas ʻinclude_path, mais utilise ʻinclude_dirs. Pour le moment, essayez s / include_path / include_dirs.

setup.py


from distutils.core import setup
from Cython.Build import cythonize
import numpy

setup(
    name = 'test',
    ext_modules = cythonize('test.pyx')
    include_dirs = [numpy.get_include()]
    )

Quand je l'ai essayé, ça a réussi (o ・ ω ・ o) Je ne sais pas ce que c'est, mais il semble que cela a été fait.

Résumé

ʻInclude_dirs = [numpy.get_include ()] `Cela semble être bon à utiliser. Il y en a peu de nouveaux écrits en japonais, donc si vous ne comprenez pas l'anglais, cela peut être douloureux. Je le compile cette fois, mais il y a beaucoup d'avertissements de «fonction inutilisée», alors peut-être que je dois le réparer? (Comme il s'agit d'une fonction inutilisée, elle peut être laissée seule)

Recommended Posts

[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
Essayer de gérer SQLite3 avec Python [Note]
Remarque Python: lors de l'attribution d'une valeur à une chaîne
ImportError lors de la tentative d'utilisation du package gcloud avec la version AWS Lambda Python
J'obtiens un UnicodeDecodeError en essayant de me connecter à oracle avec python sqlalchemy
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Choses à noter lors de l'initialisation d'une liste en Python
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Python: comment utiliser async avec
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
Utilisez une macro qui s'exécute lors de l'enregistrement de python avec vscode
Je suis resté bloqué en essayant de spécifier un chemin relatif avec relative_to () en python
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
[Note] Une histoire sur la tentative de remplacer une méthode de classe avec deux barres inférieures dans la série Python 3.
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
[Introduction à Python] Utilisons foreach avec Python
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
[Python] Explique comment utiliser la fonction range avec un exemple concret
Un référentiel essentiel à utiliser lorsque vous souhaitez l'essayer avec ansible
Un mémorandum parce que j'ai trébuché en essayant d'utiliser MeCab avec Python
Erreur lors de l'installation d'un module avec Python pip
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
[Python] La route du serpent (4) Numpy
Je veux utiliser MATLAB feval avec python
Essayez de dessiner une courbe de vie avec python
Je veux faire un jeu avec Python
[Note] Créez une classe de fuseau horaire sur une ligne avec python
Envelopper C avec Cython pour une utilisation à partir de Python
Essayez de créer un code de "décryptage" en Python
Décidez d'une mission de laboratoire avec Python (fiction)
Le moyen le plus simple d'utiliser OpenCV avec python
Histoire d'essayer d'utiliser Tensorboard avec Pytorch
Je souhaite utiliser le répertoire temporaire avec Python2
Un mémo lors de la création d'un environnement python avec miniconda
Étapes pour créer un bot Twitter avec Python
Comment utiliser tkinter avec python dans pyenv
Essayez de créer un groupe de dièdre avec Python
Envelopper C ++ avec Cython pour une utilisation à partir de Python
Erreur lors de la tentative d'installation de psycopg2 en Python
Je veux écrire dans un fichier avec Python
Zubu amateur veut démarrer Python
Matériel à lire lors de la mise en route de Python
Script Python pour obtenir des informations de note avec REAPER
Il est plus pratique d'utiliser csv-table lors de l'écriture d'une table avec python-sphinx
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
Si vous voulez créer un bot discord avec python, utilisons un framework
Une histoire à laquelle j'étais accro après la communication SFTP avec python
[Python] Utiliser JSON avec Python
Utiliser mecab avec Python 3
Utiliser DynamoDB avec Python
Utilisez Python 3.8 avec Anaconda
Utiliser python avec docker
Remarque pour faire de python un démon
Comment utiliser numpy
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python