Appelez python de nim avec Nimpy

Aperçu

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é.

Qu'est-ce que Nimpy

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!

Résumé

Je pensais que Nim était bon.

Recommended Posts

Appelez python de nim avec Nimpy
Analyse des composants principaux à l'aide de python de nim avec nimpy
Appeler CPLEX depuis Python (DO cplex)
Appelez l'API avec python3.
Avec skype, notifiez avec skype de python!
Apprenez Nim avec Python (dès le début de l'année).
Appelez Matlab depuis Python pour optimiser
Utilisation de Rstan de Python avec PypeR
Installez Python à partir des sources avec Ansible
Appeler popcount depuis Ruby / Python / C #
Exécutez Aprili depuis Python sur Orange
Charger fbx depuis python avec cinema4d
Appeler C / C ++ depuis Python sur Mac
Appeler le langage C depuis Python (python.h)
Collecter des informations sur Twitter avec Python (API Twitter)
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
Tweet de python avec Twitter Developer + Tweepy
Efficacité commerciale à partir de zéro avec Python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Manipulation d'Azure CosmosDB à partir de Python Part.2
Acquisition d'images depuis une caméra avec Python + OpenCV
Premiers pas avec Dynamo de Python boto
Utilisation des fonctions C ++ de python avec pybind11
Appelez APIGateWay avec APIKey dans les requêtes python
Appeler des commandes depuis Python (édition Windows)
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Intégrer avec Python
sql à sql
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Collecter des informations depuis Twitter avec Python (construction de l'environnement)
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Envelopper C avec Cython pour une utilisation à partir de Python
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Rendre OpenCV3 disponible à partir de python3 installé avec pyenv
Traitement d'image à partir de zéro avec python (4) Extraction de contour
Générez une instruction d'insertion à partir de CSV avec Python.
Appelez la bibliothèque Python pour la normalisation de texte depuis MATLAB
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Appel de scripts Python à partir de Python intégré en C ++ / C ++
Installez vim7.3 (+ python2.4) depuis la source (compatible avec Gundo.vim)
[Python] Traitement de plusieurs erreurs d'appel dans ray.init
Envelopper C ++ avec Cython pour une utilisation à partir de Python