Führen Sie Python in C ++ unter Visual Studio 2017 aus

Hintergrund

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.

Entwicklungsumgebung

·Laptop ・ Betriebssystem: Fenster 10 64 Bit ・ CPU: Heppoko ・ GPU: Keine ・ Visual Studio 2017 ・ C ++ ・ Python 3.7.4

Installationsinhalt

・ Visual Studio 2017 ・ Python 3.7.4 ・ Boost 1.70.0

Installation: Visual Studio 2017

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

image.png

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.

image.png

Die Installation beginnt wie unten gezeigt. image.png

Installation: Python 3.7.4

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.

image.png

Aktivieren Sie "Python 3.7 zu PATH hinzufügen" und übergeben Sie den Pfad der Umgebungsvariablen auf Ihrem PC.

image.png

Installation: Boost 1.70.0

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.

image.png

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.

image.png

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

Beispielprogramm ausführen

Ich bin bereit. Es mag einige Zeit gedauert haben, um zu steigern, aber lassen Sie uns unbedingt gehen (Schweiß).

Erstellen Sie ein neues Projekt

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. image.png

Legen Sie die Projekteigenschaften fest

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Es gibt vier Einstellungselemente.

  1. Ändern Sie die Lösungskonfiguration und die Lösungsplattform. Stellen Sie dies sowohl auf der Eigenschaftsseite als auch auf dem Hauptbildschirm ein. Es ist leicht zu vergessen, diese Einstellung zu ändern.
  2. Fügen Sie Boost und Python hinzu.
  3. Stellen Sie Multithread ein.
  4. Verknüpfen Sie Boost- und Python-LIB-Dateien.

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. image.png

Nur einmal ausführen

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 ++ - und Python-Beispielcode

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")

Ordnerstruktur

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

Ausführungsergebnis

Wenn Sie jede Zeichenfolge von C ++ und Python ausgeben können, ist dies erfolgreich.

image.png

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.

Betrachtung

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

Führen Sie Python in C ++ unter Visual Studio 2017 aus
Führen Sie Python YOLOv3 in C ++ unter Visual Studio 2017 aus
Python-Entwicklung mit Visual Studio
Führen Sie AzureKinect an Heiligabend in Python aus.
Bash, Python, Javascript, Codebefehl usw. in Visual Studio Code auf dem Mac
Weiter Python in C-Sprache
Hinweis zur Codierung bei LANG = C in Python
Einstellungen für die Python-Codierung mit Visual Studio-Code
TensorFlow: Führen Sie in Python gelernte Daten unter Android aus
Erweitern Sie Python in C ++ (Boost.NumPy)
Führen Sie Openpose unter Python (Windows) aus.
Installieren Sie numpy in Visual Studio 2019
Übersetzen von Visual Studio 2017 nach Python (Microsoft Translator Text API)
Führen Sie automatisierte Jobs in Python aus
Führen Sie Shell-Befehle in Python aus
Führen Sie Python unittest parallel aus
App-Entwicklung zum Twittern in Python aus Visual Studio 2017
Versuchen Sie, Python auf Raspberry Pi mit Visual Studio zu debuggen.
Binäre Suche in Python / C ++
Führen Sie Pythons CGI auf CORESERVER aus
Flaschenmops im Visual Studio 2019
Führen Sie den Unix-Befehl auf Python aus
Bis Sie Server Django mit Visual Studio Code ausführen
Japanische Ausgabe beim Umgang mit Python im Visual Studio
Entwicklung des AWS SDK für Python (Boto3) in Visual Studio 2017
So debuggen Sie eine Standard-Python-Bibliothek in Visual Studio
Machen Sie so etwas wie einen Python-Interpreter mit Visual Studio Code
Installieren Sie Python und Visual Studio Code unter Windows 10 (Version April 2020)
Erstellen Sie Python3 für Windows 10 unter ARM mit Visual Studio 2019 (x86) unter Windows 10 unter ARM
Lassen Sie uns "Python -m Antigravitation" in Python ausführen
Führen Sie den Shell-Befehl / Python in R aus
ABC166 in Python A ~ C Problem
Führen Sie Python planmäßig auf AWS Lambda aus
Löse ABC036 A ~ C mit Python
So verpacken Sie C in Python
Remote-Debugging in Visual Studio (Linux)
Führen Sie Python-Skripte synchron von C # aus
Löse ABC037 A ~ C mit Python
Führen Sie einen einfachen Algorithmus in Python aus
Schreiben Sie einen C-Sprach-Unit-Test in Python
Rufen Sie C / C ++ von Python auf dem Mac auf
Führen Sie Python regelmäßig auf Heroku Scheduler aus
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Ein Hinweis für diejenigen, die Python in Visual Studio verwenden (ich)
Installation von Visual Studio Code und Installation von Python
Löse ABC175 A, B, C mit Python
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Suchen Sie nach Dateien wie Linux Find in Python
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
Algorithmus in Python (ABC 146 C Dichotomie
Implementieren Sie den FIR-Filter in Python und C.
[Python] Führen Sie Flask in Google App Engine aus
[C] [Python] Lesen mit AquesTalk unter Linux
Schreiben Sie die O_SYNC-Datei in C und Python
Führen Sie den Python-Interpreter im Skript aus
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
Führen Sie Python-Code in der A2019 Community Edition aus
Installationshandbuch für Python Tools für Visual Studio
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck