Au travail (), je veux exécuter Python en C ++, et maintenant je le dois. À ce moment-là, il a fallu beaucoup de temps pour créer l'environnement, je voudrais donc le résumer une fois. Installez-en. Cela prend également du temps.
·portable ・ OS: fenêtre 10 64 bits ・ Processeur: Heppoko ・ GPU: Aucun ・ Visual Studio 2017 ・ C ++ ・ Python 3.7.4
・ Visual Studio 2017 ・ Python 3.7.4 ・ Boost 1.70.0
Accédez à l'URL ci-dessous et téléchargez "** Download Community 2017 **". Cela peut être utilisé gratuitement pour les particuliers. Nous vous recommandons également de créer un compte Microsoft. Si vous l'utilisez depuis environ un mois, vous serez informé que vous ne pourrez pas l'utiliser à moins de créer un compte et de vous connecter (peur).
URL
https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes
Puis installez. Cochez respectivement "** C ++ Desktop Development " à gauche et " WINDOWS 10 SDK **" à droite. ** Python ne peut pas être inclus ici **. Cette fois, je vais mettre en véritable Python. Vous pouvez ajouter Python (ou anaconda) par Visual studio 2017, J'ai peur de me fier personnellement à Visual studio 2017 pour Python, alors Construisez l'environnement afin qu'ils soient indépendants les uns des autres.
L'installation démarrera comme indiqué ci-dessous.
Vous pouvez vérifier comment installer Python sur de nombreux sites, mais je le posterai pour confirmation.
URL
https://www.python.org/downloads/release/python-374/
Faites défiler l'URL et vous trouverez des fichiers. Étant donné que le système d'exploitation est windosn 64 bits, téléchargez ** l'installateur exécutable windos x86-64 **.
Cochez Ajouter Python 3.7 à PATH et passez le chemin de la variable d'environnement dans votre PC.
Téléchargez à partir de l'URL suivante.
URL
https://www.boost.org/users/history/version_1_70_0.html
boost a également un élément de bibliothèque qui relie C ++ et Python. Il y a aussi la dernière version, mais j'ai confirmé que la 1.70.0 pouvait être utilisée auparavant, donc j'ai spécifié ceci cette fois.
Téléchargez-le, décompressez-le et placez-le directement sous votre lecteur C. ** Veuillez noter que le réglage du boost prend un temps considérable. ** ** Cela prend un temps terrifiant. Alors attendez patiemment lorsque vous travaillez avec des fichiers. Je prends 30 minutes pour extraire le fichier zip. Notez l'emplacement du répertoire.
Ensuite, installez boost à l'invite de commande (cmd). ○○ est le nom d'utilisateur.
cmd
C:\Users\○○ > cd C:\boost_1_70_0
C:\boost_1_70_0>bootstrap.bat
Résultat de l'exécution de 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/
J'ai installé Visual Studio 2017 en 1. Veuillez noter chaque version lors de l'installation de boost. ・ Visual Studio 2017 est mscv-14.1 ・ 64 bits x64 Aussi, installez boost en tapant ce qui suit sans déplacer le répertoire.
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
Je suis prêt. Il a peut-être fallu un certain temps pour booster, mais allons-y sans faute (sueur).
Lancez Visual Studio 2017 et lancez un nouveau projet. Sélectionnez une application console en C ++. Le nom du projet cette fois est test_Cplus2_Python.
Cliquez avec le bouton droit sur le projet et sélectionnez Propriétés. Il existe quatre éléments de réglage.
Paramètres de la page de propriétés
1.Configuration de la solution et plateforme de solution
Changé de Debug à Release
x86 → x64
2. C++→ Général → Inclure supplémentaire
C:\boost_1_70_0
C:\Users\○○\AppData\Local\Programs\Python\Python37\include
3. C++→ Génération de code → Avec bibliothèque d'exécution
Multithread (/Changer en MT)
4.Linker → Général → Répertoire de bibliothèque supplémentaire
C:\boost_1_70_0\stage\lib\x64
C:\Users\○○\AppData\Local\Programs\Python\Python37\libs
Les éléments de réglage sont entourés d'un cadre extérieur rouge. ○○ est le nom d'utilisateur.
Une fois que vous avez défini les propriétés du projet, exécutez le programme une fois. En l'exécutant, vous pouvez confirmer que le projet fonctionne et créer un fichier .exe. Ce n'est pas grave si Hello world! Apparaît.
C ++ appelle les fichiers Python et Python (.py), vous devez donc écrire du code pour chacun. Écrivez C ++ sur Visual Studio, créez un nouveau texte pour Python et écrivez le code de test ci-dessous.
Pour C ++, définissez l'espace de noms python et rendez la fonction
test_Cplus2_with_Python.cpp
#define BOOST_PYTHON_STATIC_LIB
#include <iostream>
#include <boost/python.hpp>
int main()
{
//Espace de nom
namespace py = boost::python;
//Initialisation
Py_Initialize();
//production
std::cout << "Hello World! from C++ \n";
//Fichier Python(test_py.py)Importer
py::object module_ns = py::import("test_py").attr("__dict__");
//Définir des fonctions dans le fichier importé
py::object get_and_return = module_ns["hello_from_python"];
//Exécuter la fonction importée
auto return_nd_array = get_and_return();
}
Faites en sorte que le fichier Python soit appelé un processus simple comme suit.
test_py.py
def hello_from_python():
print("Hello World! from Python")
Le code C ++ que je viens de créer test_Cplus2_with_Python → Ecrire dans test_Cplus2_with_Python.cpp, Le code Python place x64 → Release → test_py.py.
Structure des dossiers
test_Cplus2_with_Python(Dossier personnalisé)
├── 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
Si vous pouvez sortir chaque chaîne de caractères de C ++ et Python, cela réussit.
Si tu ne peux pas, -Les paramètres de la page du projet sont incorrects. -Le code dans le fichier Python est incorrect -L'emplacement du fichier Python est incorrect -L'installation du boost est incorrecte Etc.
Je ne pense pas qu'il soit si courant d'appeler Python en C ++. En tant que méthode d'utilisation, elle est efficace lors de l'utilisation de l'outil d'apprentissage en profondeur de Python en C ++. J'espère sincèrement qu'il sera utile à diverses personnes, y compris les juniors. Si je peux me le permettre, j'aimerais publier une implémentation de la méthode de détection d'objet (YOLOv3) utilisant l'apprentissage profond de Python en C ++.
Github S'il vous plaît pour votre référence.
URL
git clone https://github.com/yusa0827/200121_Cplus2_with_Python
Même si je le clone et l'exécute, cela ne fonctionne pas. Veuillez réinitialiser votre propre chemin d'environnement dans Visual Studio.
Recommended Posts