Comme prémisse. Un projet de développement pour Nim a été lancé, mais comme il était nécessaire de gérer facilement le traitement statistique, il y avait une demande pour une utilisation occasionnelle de python, il y avait donc une exigence technique que nimpy ne pouvait pas gérer. Cependant, c'était beaucoup de douleur, alors je l'ai résumé. J'espère que cela aide ceux qui ont lutté. C'est un article appelé.
Native language integration with Python has never been easier!
Une bibliothèque qui fournit une interface qui vous permet d'appeler python depuis nim ou d'appeler nim depuis python.
J'ai trouvé de nombreux cas d'appels de nim à partir de python, mais je n'avais pas d'exemple d'appel de python à partir de nim, alors je l'ai essayé. Ou plutôt, j'en avais besoin, alors je l'ai essayé.
Apparemment, vous pouvez l'appeler avec pyImport
.
pyImport
nimpy peut utiliser le module python installé par défaut en faisant nimble install nimpy
comme suit. (Pour une raison quelconque, numpy est inclus en tant que module standard sur mac)
pyImport("numpy")
Cependant, même si vous souhaitez utiliser une bibliothèque telle que sklern, vous ne pouvez pas l'utiliser car elle utilise le standard du système d'exploitation python. Dans un tel cas, il n'y a pas d'autre choix que de le mettre dans le PATH python. Il existe une méthode pour cela.
import nimpy
import nimpy/py_lib as pyLib
pyLib.pyInitLibPath("python path")
discard pyBuiltinsModule()
Vous pouvez spécifier le python à appeler en appelant avec cette syntaxe. Mais cela vous oblige à spécifier le chemin lipython.
En lisant le code nimpy, il semble que vous deviez spécifier le python généré par dylib
pour le lire ici.
Dans l'environnement installé par pyenv, il n'y avait pas de libpython généré sous la forme de libpython ** m.dylib
.
Tout d'abord, j'avais besoin de le générer, alors exécutez ce qui suit.
CONFIGURE_OPTS="--enable-shared" pyenv install {version}
Ensuite, un fichier comme libpython ** m.dylib
sera généré, alors définissez le chemin sur pyLib.pyInitLibPath
Si spécifié dans, le comportement du module Python demandé et du module installé par pip peut être utilisé.
Il a peut-être été lancé sans délai s'il était exécuté dans un environnement Docker, mais il était encombré par une exécution locale, alors j'espère que ce sera une connaissance pour cela!
Je pensais que Nim était bon.
Recommended Posts