Bei der Bereitstellung einer Python-Anwendung für den Azure App Service fiel es mir schwer, Pakete zu installieren, die per Rad kompiliert werden mussten. Daher hinterlasse ich einen Hinweis: pencil2 :: notebook: Für Leser eine Übersicht über den Azure App Service und Git Es ist für diejenigen gedacht, die wissen, wie man es einsetzt. Für diejenigen, die nicht über die erforderlichen Kenntnisse verfügen, Python mit Azure App Service-Webanwendungen konfigurieren Erstellen einer Web-App mit Django unter Azure Bitte sehen Sie zuerst die Seite.
Dieses Mal wird das Paket in der folgenden Umgebung installiert.
--Python 3.4.1 32bit (standardmäßig vom App Service bereitgestellte Umgebung)
Wenn Sie Pakete installieren, für die ein Rad erforderlich ist, [Offizielle Dokumente](https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-python-create-deploy-django-app # a-nametroubleshooter --- Paketinstallationa% 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% Unabhängig davon, wie oft ich mit Bezug auf AB) bereitgestellt habe, hatte ich Probleme mit dem folgenden Fehler. Dieses Mal werden wir diesen Fehler beseitigen.
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 ist eine Sandbox-Umgebung. Daher kann eine durch das Umschließen von C oder C ++ erstellte Bibliothek nicht mit ** pip ** installiert werden. Um diese Pakete zu installieren, müssen Sie ** mit Rad vorgefertigt **. Außerdem muss die zu erstellende Python-Umgebung dieselbe Plattform / Architektur / Version wie der App Service haben. Das heißt, Python 2.7 32bit oder 3.4 32bit ist unter Windows erforderlich. Die C ++ - Umgebung ist auch für Python 2.7 und Python 3 vorgesehen. Bitte beachten Sie, dass dies bei com / ja-jp / download / details.aspx (Id = 5555) anders ist. Wenn die Umgebung bereit ist, führen Sie den folgenden Befehl aus.
python -m pip install --upgrade pip
pip install wheel
pip wheel azure-storage
pip wheel django-pyodbc-azure
Wenn Sie den obigen Befehl ausführen, wird eine .whl-Datei generiert. Erstellen Sie einen ** Steuerhaus ** -Ordner im Stammverzeichnis der Anwendung, die Sie bereitstellen möchten, und kopieren Sie ihn dort.
Benennen Sie dann einen Teil der kopierten .whl-Datei um. Dies war der größte Stolperstein, aber ** App Service-Bereitstellungen unterstützen nur das "none" -Tag **: confounded: (Githubs [Problem](https://github.com/Azure/azure] -storage-python / issue / 219 # issuecomment-250763151) Ich bin endlich angekommen ...) Also, cryptography-1.5.2-cp34-cp34m-win32.whl => cryptography-1.5.2-cp34 Benennen Sie
cp34m vom Dateinamen in
none in der Form -none-win32.whl
um. In dem diesmal installierten Paket wurden Kryptografie, cffi und pyodbc umbenannt. Auch wenn Sie ein anderes Paket als das meine installieren, seien Sie bitte misstrauisch, wenn die .whl-Datei keine enthält.
Fügen Sie dann am Anfang von require.txt --find-links Wheelhouse
hinzu. Wenn Sie jetzt Git bereitstellen, wird im Steuerhaus nach dem Paket gesucht. Darüber hinaus lautet die Anforderung.txt wie folgt.
--find-links wheelhouse
django==1.11
azure-storage==0.34.3
django-pyodbc-azure==1.11
Wenn Sie danach die Änderungen mit Git übernehmen, ist dies die Installationsumgebung.
Azure App Service ist sehr praktisch, aber Sie haben die Gewohnheit, Pakete zu installieren. .. .. Ich hatte den Eindruck, dass die Bereitstellung von Apps, die mit C # oder Node.js erstellt wurden, viel einfacher war.
Recommended Posts