J'ai décidé de mettre un serveur web dans un projet existant avec Pycharm. Cependant, j'ai mis le projet flask en tant que sous-package dans le projet existant.
Ensuite, lorsque j'ai cd vers le sous-paquet, démarré le serveur falsk et accédé au routage, j'ai eu l'erreur suivante:
flask.cli.NoAppException
lask.cli.NoAppException: While importing "Machine_Learning_Project.resnet.server.flaskr", an ImportError was raised:
Traceback (most recent call last):
File "/home/user/anaconda3/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/home/user/Source/Machine_Learning_Project/resnet/server/flaskr/__init__.py", line 4, in <module>
from resnet.server.flaskr.index import run_process_result, index_router
ModuleNotFoundError: No module named 'resnet'
Dans l'éditeur pycharm, il n'y a pas d'erreurs dans l'instruction d'importation, mais lorsque j'accède au serveur flask, j'obtiens un message côté Web indiquant que je ne trouve pas le package dépendant.
J'ai exécuté une commande squid lorsque j'ai démarré le serveur flask.
cd /home/user/Source/Machine_Learning_Project/resnet/server
flask run
Le chemin d'accès au répertoire dans lequel vous exécutez cette commande correspond à l'analyse racine du serveur flask. Chemin racine: / home / user / Source / Machine_Learning_Project / resnet / server Le serveur flask ne connaît que ce chemin, donc lorsque vous accédez au package importé, vous ne pouvez y accéder qu'à partir de ce chemin. J'obtiens une erreur de package non trouvé car le package importé se trouve dans un autre répertoire
Comme le montre la figure, la partie orange est la perspective racine du serveur flask. Bien entendu, lors de l'importation d'un package autre que la partie orange (partie rouge), une erreur introuvable se produit. Comme vous pouvez le voir, l'éditeur spécifie la partie rouge comme chemin racine, donc aucune erreur n'a été affichée pour la partie importée.Indiquez au serveur falsk l'emplacement du package que vous souhaitez importer et il sera résolu. La méthode d'enseignement est le code suivant.
import sys
sys.path.append("/home/user/Source/Machine_Learning_Project")
En guise de mise en garde, vous devez le placer avant l'instruction d'importation du package que vous souhaitez importer.
Recommended Posts