Azure Web 应用程序 - Python:无法打开文件 'manage.py':[Errno 0] 没有错误
Azure Web App - Python: can't open file 'manage.py': [Errno 0] No error
我正在尝试使用 Azure DevOps 将我的 Django 应用程序部署为 Azure Web 应用程序。该应用程序已通过管道传输并构建到 Web 应用程序,但它不会 运行。
当我在诊断控制台中尝试 运行 py manage.py runserver
时,出现以下错误:
D:\Python34\python.exe: can't open file 'manage.py': [Errno 0] No error
有人知道问题出在哪里吗?
这是我尝试使用 Azure 部署的第一个项目,所以我的知识不是很好。
项目文件存储在服务器上的以下位置
D:\home\site\wwwroot\<applicationName>
我有时也会遇到这个错误:
Window title cannot be longer than 1023 characters.
文件结构
wwwroot
--- 应用程序名称
------ api
------ 应用程序名称
------ .env
------ db.sqlite3(空且未使用)
------ manage.py
------ requirements.txt
已尝试解决问题的方法
- 根据 Jason Pan 的想法在配置 -> 路径映射 -> 物理路径中更改文件路径
- 添加一个 web.config 文件(添加到 wwwroot -> applicationname -> web.config)。配置文件粘贴在下面。这导致了以下错误:
The specified CGI application encountered an error and the server terminated the process.
Web.Config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="D:\home\python364x64\python.exe" arguments="manage.py runserver %HTTP_PLATFORM_PORT%" requestTimeout="00:04:00" startupTimeLimit="120" startupRetryCount="3" stdoutLogEnabled="true">
<environmentVariables>
<environmentVariable name="PYTHONPATH" value="D:\home\site\wwwroot"/>
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
感谢您的帮助。
解决方案
在 Jason Pan 的大力帮助下,我设法将其设置为容器服务,应用程序现在可以正常运行了!非常感谢杰森!
最新
之前我们修改了路径,需要修改回来
第 1 步。添加扩展程序。
第 2 步。添加 web.config。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="D:\home\python364x64\python.exe"
arguments="D:\home\site\wwwroot\manage.py runserver %HTTP_PLATFORM_PORT%"
stdoutLogEnabled="true"
stdoutLogFile="D:\home\LogFiles\python.log"
startupTimeLimit="60"
processesPerApplication="16">
<environmentVariables>
<environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
第三步,确保你的wwwroot目录下的目录结构和我的一样。
第 4 步。运行 在 python364x64
中命令 pip install python-decouple
。
第5步。然后你的应用程序就可以了。如果也有问题,可以像我一样排查
测试结果。
在本地。
部署后。
您的目录结构应如下所示。它会很好地工作。
wwwroot
--- api
--- 应用程序名称
--- .env
--- db.sqlite3(空且未使用)
--- manage.py
--- requirements.txt
为了验证我的猜测,大家可以在传送门里这样测试
然后重启你的web app,如果可以的话,也是一个解决办法。之前出现这个问题的原因是添加了文件夹applicationname。
我正在尝试使用 Azure DevOps 将我的 Django 应用程序部署为 Azure Web 应用程序。该应用程序已通过管道传输并构建到 Web 应用程序,但它不会 运行。
当我在诊断控制台中尝试 运行 py manage.py runserver
时,出现以下错误:
D:\Python34\python.exe: can't open file 'manage.py': [Errno 0] No error
有人知道问题出在哪里吗? 这是我尝试使用 Azure 部署的第一个项目,所以我的知识不是很好。 项目文件存储在服务器上的以下位置
D:\home\site\wwwroot\<applicationName>
我有时也会遇到这个错误:
Window title cannot be longer than 1023 characters.
文件结构
wwwroot
--- 应用程序名称
------ api
------ 应用程序名称
------ .env
------ db.sqlite3(空且未使用)
------ manage.py
------ requirements.txt
已尝试解决问题的方法
- 根据 Jason Pan 的想法在配置 -> 路径映射 -> 物理路径中更改文件路径
- 添加一个 web.config 文件(添加到 wwwroot -> applicationname -> web.config)。配置文件粘贴在下面。这导致了以下错误:
The specified CGI application encountered an error and the server terminated the process.
Web.Config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="D:\home\python364x64\python.exe" arguments="manage.py runserver %HTTP_PLATFORM_PORT%" requestTimeout="00:04:00" startupTimeLimit="120" startupRetryCount="3" stdoutLogEnabled="true">
<environmentVariables>
<environmentVariable name="PYTHONPATH" value="D:\home\site\wwwroot"/>
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
感谢您的帮助。
解决方案
在 Jason Pan 的大力帮助下,我设法将其设置为容器服务,应用程序现在可以正常运行了!非常感谢杰森!
最新
之前我们修改了路径,需要修改回来
第 1 步。添加扩展程序。
第 2 步。添加 web.config。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="D:\home\python364x64\python.exe"
arguments="D:\home\site\wwwroot\manage.py runserver %HTTP_PLATFORM_PORT%"
stdoutLogEnabled="true"
stdoutLogFile="D:\home\LogFiles\python.log"
startupTimeLimit="60"
processesPerApplication="16">
<environmentVariables>
<environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
第三步,确保你的wwwroot目录下的目录结构和我的一样。
第 4 步。运行 在 python364x64
中命令 pip install python-decouple
。
第5步。然后你的应用程序就可以了。如果也有问题,可以像我一样排查
测试结果。
在本地。
部署后。
您的目录结构应如下所示。它会很好地工作。
wwwroot
--- api
--- 应用程序名称
--- .env
--- db.sqlite3(空且未使用)
--- manage.py
--- requirements.txt
为了验证我的猜测,大家可以在传送门里这样测试
然后重启你的web app,如果可以的话,也是一个解决办法。之前出现这个问题的原因是添加了文件夹applicationname。