Als Voraussetzung. Ein Entwicklungsprojekt für Nim wurde gestartet, aber da es erforderlich war, die statistische Verarbeitung einfach zu handhaben, bestand eine Nachfrage nach gelegentlicher Verwendung von Python, sodass es eine technische Anforderung gab, die Nimpy nicht verwalten konnte. Es war jedoch sehr schmerzhaft, also habe ich es zusammengefasst. Ich hoffe, es hilft denen, die gekämpft haben. Es ist ein Artikel namens.
Native language integration with Python has never been easier!
Eine Bibliothek mit einer Schnittstelle, über die Sie Python von nim oder nim von Python aus aufrufen können.
Ich habe viele Fälle gefunden, in denen ich nim von Python aus aufgerufen habe, aber ich hatte kein Beispiel für das Aufrufen von Python von nim, also habe ich es versucht. Oder besser gesagt, ich brauchte es, also habe ich es versucht.
Anscheinend kann man es mit pyImport
aufrufen.
pyImport nimpy kann das standardmäßig installierte Python-Modul wie folgt verwenden: nimble install nimpy. (Aus irgendeinem Grund ist numpy als Standardmodul auf dem Mac enthalten.)
pyImport("numpy")
Selbst wenn Sie eine Bibliothek wie sklern verwenden möchten, können Sie sie nicht verwenden, da sie die Standard-Python des Betriebssystems verwendet. In einem solchen Fall bleibt keine andere Wahl, als es in den Python-Pfad zu setzen. Dafür gibt es eine Methode.
import nimpy
import nimpy/py_lib as pyLib
pyLib.pyInitLibPath("python path")
discard pyBuiltinsModule()
Sie können die aufzurufende Python angeben, indem Sie mit dieser Syntax aufrufen. Dazu müssen Sie jedoch den Lipython-Pfad angeben.
Wenn Sie den Nimpy-Code lesen, müssen Sie anscheinend die von dylib
erzeugte Python angeben, um sie hier zu lesen.
In der von pyenv installierten Umgebung wurde kein libpython in Form von "libpython ** m.dylib" generiert.
Zuerst musste ich es generieren, also führen Sie Folgendes aus.
CONFIGURE_OPTS="--enable-shared" pyenv install {version}
Dann wird eine Datei wie "libpython ** m.dylib" generiert, also setzen Sie den Pfad auf "pyLib.pyInitLibPath" Wenn in angegeben, kann das Verhalten des angeforderten Python-Moduls und des von pip installierten Moduls verwendet werden.
Es wurde möglicherweise ohne Verzögerung gestartet, wenn es in einer Docker-Umgebung ausgeführt wurde, aber es wurde durch die lokale Ausführung verstopft, also hoffe ich, dass es ein Wissen dafür sein wird!
Ich fand Nim gut.
Recommended Posts