API Web EXE par Python

introduction

De temps à autre, nous pouvons être amenés à répondre à toutes les questions suivantes:

Je pense qu'il y a plusieurs façons, mais

  1. Permettre à la fonctionnalité AI d'être exposée en tant qu'API Web dans le cadre Web de Python
  2. Convertissez le script Python en fichier EXE et associez-le à l'application elle-même.
  3. Vous pouvez y parvenir en exécutant EXE à partir de l'application elle-même.

Cette fois, nous utiliserons:

(À propos, avec FastAPI x uvicorn, il y avait un problème au 30 mars 2020. [Https://github.com/pyinstaller/pyinstaller/pull/4664](https://github.com/pyinstaller/pyinstaller/ tirer / 4664)))

procédure

Installez Flask et PyInstaller.

À l'invite de commande, etc.

pip install flask pyinstaller

Créez un fichier Python qui expose l'API Web.

main.py


from flask import Flask
app = Flask(__name__)

@app.route('/predict')
def predict():
  """
Intention de l'API de renvoyer la prédiction par l'IA
  """
  return {'result': 'Prediction by AI.'}

if __name__ == '__main__':
  app.run()

Déplacer vers le répertoire contenant les fichiers ci-dessus

pyinstaller main.py --onefile

Il y a «main.exe» dans le répertoire «dist», alors essayons-le.

dist\main.exe
Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py", line 13, in <module>
  File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pkg_resources\__init__.py", line 86, in <module>
ModuleNotFoundError: No module named 'pkg_resources.py2_warn'
[24508] Failed to execute script pyi_rth_pkgres

Si vous obtenez ModuleNotFoundError comme ci-dessus, éditez le fichier main.spec généré dans la même hiérarchie que main.py avec un éditeur de texte. Spécifiquement, incluez le nom du module qui n'a pas été trouvé dans hiddenimports.

main.spec


             # --Abréviation--
             hiddenimports=[],
             # --Abréviation--

↓ Modifiez et enregistrez comme suit.

main.spec


             # --Abréviation--
             hiddenimports=['pkg_resources.py2_warn'],
             # --Abréviation--

Exécutez pyinstaller avec le fichier de spécification modifié au lieu du fichier py.

pyinstaller main.spec --onefile

Vérifiez à nouveau l'opération.

dist\main.exe

Lorsque vous y accédez, vous pouvez à peu près confirmer que l'API Web est ouverte. browser.png

En fait, cet EXE est exécuté à partir d'une application telle que C # (gestion des processus requise), et il est accessible par le client Http à partir de la même application.

Recommended Posts

API Web EXE par Python
API Web avec Python + Falcon
Accédez à l'API Web en Python
[Python] Application Web à partir de 0! Pratique (3) - Mise en œuvre de l'API
Python: lecture de données JSON à partir de l'API Web
Procédure pour utiliser l'API WEB de TeamGant (en utilisant python)
La première application Web créée par des débutants en Python
Vitesse explosive avec Python (bouteille)! Développement d'API Web
Jugement des nombres premiers par Python
Framework Web Django Python
Mémo de visualisation par Python
Traitement de la communication par Python
API Evernote en Python
Liste des API Python pour OpenCV3
Réponse de Beamformer par python
API C en Python 3
Mémo de l'API TensorFlow (Python)
Base de connaissances + API Web exploitées par NoSQL x PaaS
Reconnaissance vocale des fichiers par l'API Google Speech v2 à l'aide de Python
[python] [Gracenote Web API] Une petite personnalisation de pygn
Hit API de Mastodon en Python
Utiliser l'API Trello avec python
Reconnaissance vocale par Python MFCC
Web scraping avec python + JupyterLab
AWS CDK-Lambda + API Gateway (Python)
Utiliser l'API Twitter avec Python
Programme de formation des nouveaux arrivants par Python
Paramétrage par le configurateur python
Pin python géré par conda
Appelez l'API Bing Image Search v5 depuis Python pour collecter des images
Résumé de l'article sur la programmation Web Python
Extraction de mots-clés par MeCab (python)
Séparez les nombres par 3 chiffres (python)
Comparaison de 4 types de frameworks Web Python
Collection d'images avec scraping Web
Modèle de commutation de Markov par Python
Web scraping avec Selenium (Python)
Traitement d'image par python (Pillow)
Python lancé par des programmeurs C
API Blender Python dans Houdini (Python 3)
Appelez l'API avec python3.
Application Web avec Python + Flask ② ③
Utiliser l'API subsonique avec python3
Conseils relatifs aux API Google Drive (Python)
Web scraping débutant avec python
Rationalisez la recherche Web avec Python
Grattage de bande sur une seule ligne avec du tsé
Jugement de la plateforme (OS) par Python
Utilisez l'API e-Stat de Python
Application Web avec Python + Flask ④
Trier par date en python
[Python / Django] Créer une API Web qui répond au format JSON
[FastAPI] Premiers pas avec FastAPI, un framework Web ASGI créé par Python
Jouez en accédant à l'API Riot Games en Python Première moitié
pythonweb scraping-get éléments en vrac