Lassen Sie uns mit SWIG ein Modul für Python erstellen

Ich habe versucht, SWIG zu verwenden. Ich erinnere mich, dass ich es zuvor für die morphologische Analyse mit Human verwendet habe, aber ich habe es nicht richtig untersucht, also habe ich mir eine Notiz gemacht.

Handbuch http://www.swig.org/Doc1.3/Python.html#Python_nn4

Folgen Sie der READ ME für die Installation.

$./configure
$make
$su
$make install

Spielen Sie nach Abschluss der Installation mit dem Beispiel im Handbuch.

Der Inhalt der .i-Datei http://blog.livedoor.jp/yoshichi9/archives/21911908.html参考

Modul Modulname
%{
Name der Header-Datei einschließen
%}
Funktionsaufzählung(Oder.h Datei)
#define(Makrodefinition usw.)

Es scheint.

Erstellen wir nun ein Erweiterungsmodul, das Werte zurückgibt, die einer Normalverteilung folgen.

Bereiten Sie zunächst verschiedene c-Quelldateien vor.

normaldist.h


double normal_distribution(double myu, double sigma, double x);

normaldist.c


#include "normaldist.h"
#include <math.h>

double normal_distribution(double myu, double sigma, double x){

  double d;
  double coefficient, in_exp;

  coefficient = sqrt(2 * M_PI * sigma); //Koeffizient
  in_exp = exp( -pow( x - myu, 2 ) / (2 * sigma ));  //Der Typ auf der Schulter von exp

  d = in_exp / coefficient;

  return d;
}

Dann die .i-Datei für swig

normaldist.i


%module normaldist

%{
#define SWIG_FILE_WITH_INIT
#include "normaldist.h"
#include <math.h>
  %}

double normal_distribution(double myu, double sigma, double x);

最後にsetup.py

setup.py


from distutils.core import setup, Extension

module1 = Extension('_normaldist',
                    sources = ['normaldist_wrap.c', 'normaldist.c'])

setup (name = 'normaldist',
       version = '1.0',
       description = 'This is a normaldist package',
       ext_modules = [module1],
       py_modules = ["normaldist"],)

Sie müssen lediglich die Befehle der Reihe nach eingeben.

$swig -python normaldist.i
$python setup.py build_ext --inplace

Es sollte _normaldist.so im selben Verzeichnis sein.

Recommended Posts

Lassen Sie uns mit SWIG ein Modul für Python erstellen
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
Lassen Sie uns eine GUI mit Python erstellen.
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Erstellen wir eine virtuelle Umgebung für Python
Qt für Python App Desktop App
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Erstellen Sie ein Webframework mit Python! (1)
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Lassen Sie uns ein Backend-Plug-In für Errbot erstellen
Lassen Sie uns einen Web-Chat mit WebSocket mit AWS serverless (Python) durchführen!
Erstellen Sie ein Python-Modul
[Python] Lassen Sie uns das Modul regelmäßig nach Zeitplan ausführen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Lassen Sie uns Covid-19 (Corona) -Daten mit Python analysieren [Für Anfänger]
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
So erstellen Sie ein Python-Paket mit VS Code
[Super einfach] Machen wir einen LINE BOT mit Python.
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Lassen Sie uns mit Google Colaboratory ganz einfach ein mathematisches GIF erstellen
Machen wir einen Discord Bot.
Erstellen Sie ein Lesezeichen in Python
Machen Sie eine Lotterie mit Python
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 7 Erstellen eines Moduls
Lassen Sie uns mit Python einen Web-Socket-Client erstellen. (Zugriffstoken-Authentifizierung)
Erstellen wir eine Funktion für den parametrisierten Test mithilfe eines Rahmenobjekts
Probieren Sie die ähnliche Suche von Image Search mit Python SDK [Search] aus.
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
Beim Ausführen eines Programms mit dem Azure SDK für Python wurde "ModuleNotFoundError: Kein Modul mit dem Namen" Azure "" angezeigt
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Ich habe einen Line-Bot mit Python gemacht!
Erstellen Sie mit tkinter eine Python-GUI
Machen Sie eine Tweet-Box für Pepper
Zeichnen einer Silbersteinkurve mit Python
Machen wir einen Spot Sale Service 2
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Machen wir einen Spot Sale Service 1
Python / Machen Sie ein Diktat aus einer Liste.
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Erstellen Sie ein Empfehlungssystem mit Python
Verwenden Sie Blender als Python-Modul
[TouchDesigner] Tipps für die Anweisung von Python
Versuchen Sie es mit dem Python Cmd-Modul
Machen wir mit xCAT einen Spacon
[Python] Grund für das Überschreiben mit super ()
Ich suche nach dem Ort des Quecksilber-Python-Moduls
Machen wir einen Spot Sale Service 3
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 1 erstellen
Erstellen Sie mit dem Serverless Framework eine lokale Entwicklungsumgebung für Lambda + Python
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 2 erstellen