De temps à autre, nous pouvons être amenés à répondre à toutes les questions suivantes:
Je pense qu'il y a plusieurs façons, mais
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)))
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.
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