--Cython ist eine Programmiersprache, die Python mit einem statischen Typsystem von C oder C ++ kombiniert.
--Yo: Kompiliere Python zu C. --Yin: C / C ++ und Python-Schnittstelle
--Cython ist nicht das erste wirksame Mittel, wenn die Profilerstellung E / A-gebunden / netzwerkgebunden zeigt --Cython ist gültig für ** CPU-gebundene ** Probleme.
Paretos Gesetz
80% der Programmausführungszeit werden nur für 20% des Codes aufgewendet. ――20% können ohne Profilerstellung nicht gefunden werden
** Nutzen Sie die integrierten Profiling-Tools von Python **
** Der Unterschied zwischen Cython und Python ist gering, wenn speichergebundene, E / A-gebundene und netzwerkgebundene Verarbeitung die Hauptverarbeitung sind **
Speicher gebunden: Hinzufügen von Elementen in einem riesigen Array usw.
E / A-gebunden: Lesen von Dateien von der Festplatte usw.
Netzwerkgebunden: Empfangen von Daten aus dem Netzwerk usw.
%load_ext cythonmagic
...\extensions\cythonmagic.py:21: UserWarning: The Cython magic has been moved to the Cython package
warnings.warn("""The Cython magic has been moved to the Cython package""")
[Cython in Ipython: ERROR: Cell magic %%cython
not found - Stack Overflow][4]
you should do:
%load_ext Cython
After that, the cython magic should work as expected.
――In [Cython-Buch] 1,
Drücken Sie zweimal hintereinander die [Return] -Taste, um den Block zu verlassen
Ich konnte jedoch nicht raus. Die Linie bricht endlos wie ↓.
In [6]: %%cython
...: def fib(int n):
...: cdef int i
...: for i in range(n):
...: print(i)
...:
...:
...:
...:
...:
...:
...:
-Ich bin mit [Shift] + [Return] ausgestiegen
In [7]: %load_ext Cython
In [8]: %%cython
...: def fib(int n):
...: cdef int i
...: for i in range(n):
...: print(i)
...: # [Shift] + [Return]
....ipython\cython_cython_magic_ed5cb5261ba45739ef3878fbe8610564.c
/* "_cython_magic_ed5cb5261ba45739ef3878fbe8610564.pyx":3
cdef int i
for i in range(n): # <<<<<<<<<<<<<<
print(n)
return n
*/
## Automatische Kompilierung beim Import
--Erstellen Sie die folgende fib.pyx
(Obwohl es sich um Fib handelt, handelt es sich nicht um eine Fibonacci-Sequenz, sondern um eine zur Vereinfachung geeignete.)
#### **`fib.pyx`**
```pyx
def fib(int n):
cdef int i
for i in range(n):
print(i)
--Import pyx importieren ermöglicht den Import von fib.pyx.
In [21]: import pyximport
In [22]: pyximport.install()
Out[22]: (None, <pyximport.pyximport.PyxImporter at 0x64f2cc0>)
In [23]: import fib
In [24]: fib.fib(10)
0
1
2
3
4
5
6
7
8
9
[2]: https://ja.wikipedia.org/wiki/ Kreolische Sprache [3]:https://jp.vector.com/vj_xl_driver_library_jp.html [4]:https://stackoverflow.com/questions/36514338/cython-in-ipython-error-cell-magic-cython-not-found
Recommended Posts