Bei work () möchte ich Python in C ++ ausführen, und jetzt muss ich. Zu dieser Zeit hat das Erstellen der Umgebung viel Zeit in Anspruch genommen, daher möchte ich sie einmal zusammenfassen. Installieren Sie einige. Es braucht auch Zeit.
·Laptop ・ Betriebssystem: Fenster 10 64 Bit ・ CPU: Heppoko ・ GPU: Keine ・ Visual Studio 2017 ・ C ++ ・ Python 3.7.4
・ Visual Studio 2017 ・ Python 3.7.4 ・ Boost 1.70.0
Gehen Sie zur unten stehenden URL und laden Sie "** Download Community 2017 **" herunter. Dies kann für Einzelpersonen kostenlos genutzt werden. Wir empfehlen außerdem, ein Microsoft-Konto zu erstellen. Es wird gesagt, dass Sie es nicht verwenden können, wenn Sie es etwa einen Monat lang verwendet haben, es sei denn, Sie erstellen ein Konto und melden sich an (Angst).
URL
https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes
Dann installieren. Aktivieren Sie links "** C ++ Desktop Development " und rechts " WINDOWS 10 SDK **". ** Python kann hier nicht aufgenommen werden **. Dieses Mal werde ich echtes Python einsetzen. Sie können Python (oder Anaconda) von Visual Studio 2017 hinzufügen. Ich habe Angst, mich für Python persönlich auf Visual Studio 2017 zu verlassen Bauen Sie die Umgebung so auf, dass sie unabhängig voneinander sind.
Die Installation beginnt wie unten gezeigt.
Sie können überprüfen, wie Python auf vielen Websites installiert wird, aber ich werde es zur Bestätigung veröffentlichen.
URL
https://www.python.org/downloads/release/python-374/
Scrollen Sie in der URL nach unten, um Dateien zu finden. Da das Betriebssystem windosn 64bit ist, laden Sie das ausführbare Installationsprogramm ** windos x86-64 ** herunter.
Aktivieren Sie "Python 3.7 zu PATH hinzufügen" und übergeben Sie den Pfad der Umgebungsvariablen auf Ihrem PC.
Laden Sie von der folgenden URL herunter.
URL
https://www.boost.org/users/history/version_1_70_0.html
boost hat auch ein Bibliothekselement, das C ++ und Python verbindet. Es gibt auch die neueste Version, aber ich habe bestätigt, dass 1.70.0 bereits verwendet werden kann, daher habe ich diesmal angegeben.
Laden Sie es herunter, entpacken Sie es und platzieren Sie es direkt unter Ihrem C-Laufwerk. ** Bitte beachten Sie, dass das Einstellen des Boosts sehr zeitaufwändig sein kann. ** ** ** Es dauert erschreckend viel Zeit. Warten Sie also geduldig, wenn Sie mit Dateien arbeiten. Ich brauche 30 Minuten, um die Zip-Datei zu extrahieren. Notieren Sie den Speicherort des Verzeichnisses.
Installieren Sie dann boost an der Eingabeaufforderung (cmd). ○○ ist der Benutzername.
cmd
C:\Users\○○ > cd C:\boost_1_70_0
C:\boost_1_70_0>bootstrap.bat
Ausführungsergebnis von bootstrap.bat.
cmd
Building Boost.Build engine
Generating Boost.Build configuration in project-config.jam for msvc...
Bootstrapping is done. To build, run:
.\b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
.\b2 --help
- Getting started guide:
http://boost.org/more/getting_started/windows.html
- Boost.Build documentation:
http://www.boost.org/build/
Ich habe Visual Studio 2017 in 1 installiert. Achten Sie bei der Installation von Boost auf jede Version. ・ Visual Studio 2017 ist mscv-14.1 ・ 64bit x64 Installieren Sie außerdem boost, indem Sie Folgendes eingeben, ohne das Verzeichnis zu verschieben.
cmd
b2.exe toolset=msvc-14.1 link=static runtime-link=static,shared --build-dir=build/x64 address-model=64 -j5 install --includedir=C:\boost_1_70_0\include --libdir=C:\boost_1_70_0\stage\lib\x64
Ich bin bereit. Es mag einige Zeit gedauert haben, um zu steigern, aber lassen Sie uns unbedingt gehen (Schweiß).
Starten Sie Visual Studio 2017 und starten Sie ein neues Projekt. Wählen Sie eine Konsolen-App in C ++ aus. Der Projektname lautet diesmal test_Cplus2_Python.
Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Es gibt vier Einstellungselemente.
Eigenschaftenseiteneinstellungen
1.Lösungskonfiguration und Lösungsplattform
Von Debug zu Release geändert
x86 → x64
2. C++→ Allgemein → Zusätzliches Include
C:\boost_1_70_0
C:\Users\○○\AppData\Local\Programs\Python\Python37\include
3. C++→ Codegenerierung → Mit Laufzeitbibliothek
Multi Thread(/Wechsel zu MT)
4.Linker → Allgemein → Zusätzliches Bibliotheksverzeichnis
C:\boost_1_70_0\stage\lib\x64
C:\Users\○○\AppData\Local\Programs\Python\Python37\libs
Die Einstellungselemente sind von einem roten Außenrahmen umgeben. ○○ ist der Benutzername.
Nachdem Sie die Projekteigenschaften festgelegt haben, führen Sie das Programm einmal aus. Durch Ausführen können Sie bestätigen, dass das Projekt funktioniert, und eine EXE-Datei erstellen. Es ist okay, wenn Hallo Welt! Erscheint.
C ++ ruft Python- und Python-Dateien (.py) auf, daher müssen Sie für jede Datei Code schreiben. Schreiben Sie C ++ in Visual Studio, erstellen Sie neuen Text für Python und schreiben Sie den folgenden Testcode.
Definieren Sie für C ++ den Python-Namespace und erstellen Sie die Funktion
test_Cplus2_with_Python.cpp
#define BOOST_PYTHON_STATIC_LIB
#include <iostream>
#include <boost/python.hpp>
int main()
{
//Namensraum
namespace py = boost::python;
//Initialisieren
Py_Initialize();
//Ausgabe
std::cout << "Hello World! from C++ \n";
//Python-Datei(test_py.py)Importieren
py::object module_ns = py::import("test_py").attr("__dict__");
//Definieren Sie Funktionen in der importierten Datei
py::object get_and_return = module_ns["hello_from_python"];
//Führen Sie die importierte Funktion aus
auto return_nd_array = get_and_return();
}
Machen Sie die Python-Datei wie folgt zu einem einfachen Prozess.
test_py.py
def hello_from_python():
print("Hello World! from Python")
Der C ++ - Code, den ich gerade erstellt habe test_Cplus2_with_Python → Schreiben Sie in test_Cplus2_with_Python.cpp, Der Python-Code platziert x64 → Release → test_py.py.
Ordnerstruktur
test_Cplus2_with_Python(Selbst erstellter Ordner)
├── test_Cplus2_with_Python
│ ├── test_Cplus2_with_Python.cpp 〇
│ ├── test_Cplus2_with_Python.vcxproj
│ ├── test_Cplus2_with_Python.vcxproj.filters
│ ├── test_Cplus2_with_Python.vcxproj.user
│ └── x64
│
├── x64
│ └── Release
│ ├── test_Cplus2_with_Python.exe
│ ├── test_Cplus2_with_Python.iobj
│ ├── test_Cplus2_with_Python.ipdb
│ ├── test_Cplus2_with_Python.pdb
│ └── test_py.py 〇
│
└── test_Cplus2_with_Python.sln
Wenn Sie jede Zeichenfolge von C ++ und Python ausgeben können, ist dies erfolgreich.
Wenn du nicht kannst, -Die Einstellungen auf der Projektseite sind falsch. -Der Code in der Python-Datei ist falsch -Der Speicherort der Python-Datei ist falsch -Die Boost-Installation ist falsch Und so weiter.
Ich denke nicht, dass es so üblich ist, Python in C ++ aufzurufen. Als Verwendungsmethode ist es effektiv, wenn Sie das Deep-Learning-Tool von Python in C ++ verwenden. Ich hoffe aufrichtig, dass es für verschiedene Menschen, einschließlich Junioren, nützlich sein wird. Wenn ich es mir leisten kann, möchte ich eine Implementierung der Objekterkennungsmethode (YOLOv3) mit Pythons Deep Learning in C ++ veröffentlichen.
Github Bitte als Referenz.
URL
git clone https://github.com/yusa0827/200121_Cplus2_with_Python
Selbst wenn ich es klone und ausführe, funktioniert es nicht. Bitte setzen Sie Ihren eigenen Umgebungspfad in Visual Studio zurück.
Recommended Posts