Kon*_*rad 3 python django azure azure-web-sites wagtail
我使用外部Git仓库(Bitbucket)将Azure应用程序(准确地说是wagtail)部署到Azure Web Services,这是一个挑战.我想使用Python 3.6.1,因此我遵循了在Azure App Service手册上管理Python的说明
但是,部署失败并显示消息
Detecting Python runtime from runtime.txt
Unsupported runtime: python-3.6.1
Supported runtime values are:
python-2.7
python-3.4
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\66.61008.3066\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"
Run Code Online (Sandbox Code Playgroud)
我的web.config文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<!-- Django apps only -->
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
scriptProcessor="D:\home\python361x64\python.exe|D:\home\python361x64\wfastcgi.py"
resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
路径还可以,下面是ls来自Kudu控制台
D:\home\python361x64>ls
DLLs
Lib
Scripts
__pycache__
python.exe
python3.dll
python36.dll
pythonw.exe
sitecustomize.py
vcruntime140.dll
wfastcgi.py
Run Code Online (Sandbox Code Playgroud)
看起来部署过程没有考虑我的web.config文件,或者我通过扩展安装的python版本不可见.
你能告诉我可能的问题在哪里吗?
最好的问候,
康拉德
经过几个小时的战斗,我终于成功地按照预期运行了这个混蛋;)
谢谢你,@Jay Gong为你的输入一步一步地用这个教程向我展示了一些东西.
runtime.txt我在根文件夹中的文件是第一个问题.由于3.6版本的python是通过扩展安装的,事实上,部署过程现在不存在这个v.(它"知道"只有2.7和3.4).所以第一步是摆脱这个文件.当runtime.txt已被删除,部署过程中一直使用python 3.4和从安装的一个依赖不灵requirements.txt文件(可能是因为旧版本的Python).所以下一步是添加.skipPythonDeployment,以避免自动安装需求并通过kudu console手动安装.在我们的python env文件夹中(在我的情况下D:\home\python361x64)启动了以下命令
python.exe -m pip install --upgrade -r D:\home\site\wwwroot\requirements.txt
所有依赖项都已正确安装.
部署后,在Web浏览器中启动应用程序显示消息The page cannot be displayed because an internal server error has occurred..下一步是收集有关该问题的更多信息,因此我在web.config文件中添加了一些新行:
....
<system.webServer>
....
<httpErrors errorMode="Detailed"></httpErrors>
</system.webServer>
<system.web>
....
<customErrors mode="Off" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
多亏了这一点,我能够检查导致问题的原因.就我而言,这是一个WSGI_HANDLER价值web.config.我将它设置为正确的值(对于wagtail它是<app_name>.wsgi.application,然后它开始工作.
谢谢大家的支持.
| 归档时间: |
|
| 查看次数: |
4256 次 |
| 最近记录: |