Lors du déploiement d'une application Python sur Azure App Service, j'ai eu du mal à installer des packages qui devaient être compilés par wheel, donc je vais laisser une note: Pencil2 :: notebook: Pour les lecteurs, un aperçu d'Azure App Service et par Git Il est destiné à ceux qui savent se déployer. Pour ceux qui n'ont pas les connaissances préalables, Configurer Python avec Azure App Service Web Apps Création d'une application Web à l'aide de Django sur Azure Veuillez d'abord consulter la page.
Cette fois, le package est installé dans l'environnement suivant.
--Python 3.4.1 32 bits (environnement fourni par App Service par défaut)
Lors de l'installation de packages nécessitant une roue, [Documents officiels](https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-python-create-deploy-django-app # dépannage d'un nom --- installation du packagea% E3% 83% 88% E3% 83% A9% E3% 83% 96% E3% 83% AB% E3% 82% B7% E3% 83% A5% E3% 83 % BC% E3% 83% 86% E3% 82% A3% E3% 83% B3% E3% 82% B0 ---% E3% 83% 91% E3% 83% 83% E3% 82% B1% E3% 83% BC% E3% 82% B8% E3% 81% AE% E3% 82% A4% E3% 83% B3% E3% 82% B9% E3% 83% 88% E3% 83% BC% E3% 83% Peu importe le nombre de fois que j'ai déployé en référence à AB), j'ai eu des problèmes avec l'erreur suivante. Cette fois, nous éliminerons cette erreur.
remote: Running setup.py install for pyodbc
remote: building 'pyodbc' extension
remote: error: Unable to find vcvarsall.bat
remote: Complete output from command D:\home\site\wwwroot\env\Scripts\python.exe -c "import setuptools, tokenize;__file__='D:\\home\\site\\wwwroot\\env\\build\\pyodbc\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record D:\local\Temp\pip-okpfh2du-record\install-record.txt --single-version-externally-managed --compile --install-headers D:\home\site\wwwroot\env\include\site\python3.4:
remote: running install
remote:
remote: running build
remote:
remote: running build_ext
remote:
remote: building 'pyodbc' extension
remote:
remote: error: Unable to find vcvarsall.bat
remote:
remote: ----------------------------------------
Azure App Service est un environnement sandbox. Par conséquent, une bibliothèque créée en enveloppant C ou C ++ ne peut pas être installée avec ** pip **. Pour installer ces packages, vous avez besoin de ** pré-build avec wheel **. En outre, l'environnement Python que vous créez doit être sur la même plate-forme / architecture / version que App Service. Autrement dit, Python 2.7 32 bits ou 3.4 32 bits est requis sous Windows. En outre, l'environnement C ++ est pour Python 2.7 et [Python 3](https://www.microsoft. Veuillez noter que c'est différent pour com / ja-jp / download / details.aspx? Id = 5555). Lorsque l'environnement est prêt, exécutez la commande suivante.
python -m pip install --upgrade pip
pip install wheel
pip wheel azure-storage
pip wheel django-pyodbc-azure
Lorsque vous exécutez la commande ci-dessus, un fichier .whl est généré. Créez un dossier ** wheelhouse ** dans le répertoire racine de l'application que vous prévoyez de déployer et copiez-le là.
Puis renommez une partie du fichier .whl copié. C'était la plus grosse pierre d'achoppement, mais ** Les déploiements d'App Service ne prennent en charge que la balise none
**: confounded: (Github's [Issue](https://github.com/Azure/azure] -storage-python / issues / 219 # issuecomment-250763151) Je suis enfin arrivé ...) Donc, cryptographie-1.5.2-cp34-cp34m-win32.whl => cryptographie-1.5.2-cp34 Renommez
cp34m du nom de fichier à
aucun sous la forme -none-win32.whl
. Dans le package installé cette fois, la cryptographie, cffi et pyodbc ont été renommées. Même si vous installez un paquet différent du mien, soyez méfiant si le fichier .whl n'en contient aucun.
Ajoutez ensuite --find-links wheelhouse
au début de requirements.txt. Désormais, lorsque vous déployez Git, il recherchera le package dans la timonerie. De plus, requirements.txt se présente comme suit.
--find-links wheelhouse
django==1.11
azure-storage==0.34.3
django-pyodbc-azure==1.11
Après cela, si vous récupérez les modifications avec Git, c'est l'environnement d'installation.
Azure App Service est très pratique, mais vous avez l'habitude d'installer des packages. .. .. J'ai eu l'impression que le déploiement d'applications créées avec C # ou Node.js était beaucoup plus facile.
Recommended Posts