C-Sprache zum Sehen und Erinnern Teil 1 Rufen Sie die C-Sprache aus Python auf (Hallo Welt)

C ist nützlich, um Dinge zu tun, die Python nicht kann.

Die GO-Sprache ist bequemer und schneller als die C-Sprache, aber ich bin mit 89 Zeigern süchtig danach. Da der Index mit dem Wert verbunden ist (der Wert ist grundlegend und der Verweis nicht gut), kann der Index nicht verwendet werden, selbst wenn er mit einem Zeiger übergeben wird.

Schauen wir uns einen Beispielsatz an, der auf dem Zweck "Sehen und Erinnern" basiert.

Was Sie brauchen ist

1. GCC ** gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0** 2. Python Python 3.7.4 3. Erweiterter Editor wie Visual Studio Code Version: 1.41.1 (system setup) OS: Windows_NT x64 10.0.18362

Erster Schritt

Erstellen Sie einen Ordner mit einem geeigneten Namen. Kopieren wir das folgende Programm!

> mkdir capi

** Python-Testbibliothek aufrufen **

capi.py


import myModule as capi #Gib ihm einen passenden Namen(Ich bin süchtig nach Tests
capi.hello()

** Bibliothekskörper **

capilib.c


#include <Python.h>
static PyObject* hello(PyObject* self, PyObject* args)
{
    printf("Hallo Welt Tokio\n");
    return Py_None;
}
//Definition des Funktionsnamens, der Spezifikationen usw.
static PyMethodDef myMethods[] = {
    { "hello", hello, METH_NOARGS, "Hello World"},
    { NULL }
};
// Module Definition struct
static struct PyModuleDef myModule = {
 PyModuleDef_HEAD_INIT,"myModule","C API Module",-1,myMethods
};
//Initialisieren Sie die obige Struktur
PyMODINIT_FUNC PyInit_myModule(void)
{
    return PyModule_Create(&myModule);
}

Skript zur Bibliothekserstellung

setup.py


from distutils.core import setup, Extension
setup(name = 'myModule', version = '1.0.0',  \
   ext_modules = [Extension('myModule', ['capilib.c'])])

Erstellen Sie eine Bibliothek.

python setup.py install
running install
running build
running build_ext
running install_lib
running install_egg_info
Removing C:\ProgramData\Anaconda3\Lib\site-packages\myModule-1.0.0-py3.7.egg-info
Writing C:\ProgramData\Anaconda3\Lib\site-packages\myModule-1.0.0-py3.7.egg-info

So überprüfen Sie die Bibliothek

\capi>pip freeze
...
myModule==1.0.0
...

Maßnahmen gegen verstümmelte Charaktere

> chcp 65001

Lauf

capi>python capi.py
Hallo Welt Tokio

Recommended Posts

C-Sprache zum Sehen und Erinnern Teil 1 Rufen Sie die C-Sprache aus Python auf (Hallo Welt)
C-Sprache zum Anzeigen und Erinnern Teil 2 Rufen Sie die C-Sprache aus der Python-Zeichenfolge (Argument) auf
C-Sprache zum Anzeigen und Erinnern Teil 4 Rufen Sie die C-Sprache von Python (Argument) double auf
C-Sprache zum Anzeigen und Erinnern Teil 5 Rufen Sie die C-Sprache aus dem Python-Array (Argument) auf
Gehen Sie zur Sprache, um Teil 8 zu sehen und sich daran zu erinnern. Rufen Sie die GO-Sprache von Python aus auf
C-Sprache zum Sehen und Erinnern Teil 3 Rufen Sie die C-Sprache aus Python auf (Argument) c = a + b
Gehen Sie in die Sprache, um Teil 7 C in der Sprache GO zu sehen und sich daran zu erinnern
Rufen Sie die c-Sprache von Python aus auf (python.h)
Rufen Sie C-Sprachfunktionen von Python auf, um mehrdimensionale Arrays auszutauschen
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
Rufen Sie Matlab von Python zur Optimierung auf
Rufen Sie popcount von Ruby / Python / C # auf
Einführung in Protobuf-c (C-Sprache ⇔ Python)
Python, um von einer anderen Sprache zu wechseln
Einführung in Ansible Teil 1'Hallo Welt !! '
Rufen Sie C / C ++ von Python auf dem Mac auf
[Python] Drücken Sie Keras von TensorFlow und TensorFlow von c ++, um die Ausführung zu beschleunigen.
Vom Aufbau einer Python-Umgebung für unerfahrene Personen bis zur Hello-Welt
Rufen Sie mit ctypes Ihre eigene gemeinsam genutzte Bibliothek in C-Sprache von Python aus auf
[Es ist noch nicht zu spät, Python ab 2020 zu lernen] Teil 3 Python Language Basic (1)
[Python] Webanwendung von 0! Hands-on (2) -Hallo Welt-
Von Python bis zur Verwendung von MeCab (und CaboCha)
Python nur mit Hallo, Welten zu erinnern
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Socket-Kommunikation in C-Sprache und Python
Flask Tutorial (von der Installation bis zur Hallo Welt)
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
So zeigen Sie Hello World in Python an
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
So generieren Sie eine Sequenz in Python und C ++
Vom Aufbau der Kivy-Umgebung bis zur Anzeige von Hello World
Schreiben von Protokollen in eine CSV-Datei (Python, C-Sprache)
Versuchen Sie, das Programm "FORTRAN77 Numerical Computing Programming" auf C und Python zu portieren (Teil 3).
Rufen Sie Rust von Python an, um schneller zu werden! PyO3-Tutorial: Umschließen von Klassen Teil ➀
Versuchen Sie, das Programm "FORTRAN77 Numerical Computing Programming" auf C und Python zu portieren (Teil 2).
Rufen Sie Rust von Python an, um schneller zu werden! PyO3-Tutorial: Umschließen von Klassen Teil ➁
Rufen Sie Python-Skripte aus Embedded Python in C ++ / C ++ auf
Liste des zu verschiebenden und zu merkenden Python-Codes
Ich möchte C ++ - Code aus Python-Code erstellen!
Eine einfache Möglichkeit, Java von Python aus aufzurufen
Die Geschichte der Portierung von Code von C nach Go (und zur Sprachspezifikation)
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Studie vom Anfang von Python Hour1: Hallo Welt
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Einführung in die Python-Sprache
Rufen Sie Rust von Python an, um schneller zu werden! PyO3-Tutorial: Umschließen einer einfachen Funktion Teil ➁
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
Lernen Sie die Grundlagen und Tipps der kanonischen Python-Ausdrücke von Grund auf neu
Herstellen einer Verbindung zu verschiedenen DBs über Python (PEP 249) und SQL Alchemy
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Vom Einrichten der Rust-Umgebung bis zum Ausführen von Hello World
Rabbit MQ Tutorial (1) - Von der Installation zu Hello World (offizielle Site-Übersetzung)
Objektorientiert in C-Sprache: "○ ✕ game" wurde überarbeitet und nach Python portiert
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -
Übergeben Sie die OpenCV-Daten der ursprünglichen C ++ - Bibliothek an Python
Wie man Python oder Julia von Ruby aus aufruft (experimentelle Implementierung)
Python / Tensorflow-Anfänger bauen eine Jupyter + Tensorflow-Umgebung und machen Hello World
Rufen Sie CPLEX von Python aus auf (DO cplex)
Post von Python nach Slack
Flirte von PHP nach Python