添加openai依赖后,Python Flask应用通过Zip部署至Azure App Service失败的求助
添加openai依赖后,Python Flask应用通过Zip部署至Azure App Service失败的求助
我现在遇到个头疼的问题——把带openai依赖的Python Flask应用用Zip部署到Azure App Service(Python 3.9环境)时总是失败,但不带openai的版本完全正常。下面是我的详细情况,麻烦大家帮我看看哪里出问题了🥺
基础环境
- 部署目标:Azure App Service(Python 3.9)
- 部署方式:Zip包部署
可正常部署运行的代码
app.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello, Azure!--1" if __name__ == '__main__': app.run(host='0.0.0.0', port=8000)
requirements.txt
Flask==3.1.0
添加openai依赖后部署失败的代码
app.py
from flask import Flask import openai app = Flask(__name__) @app.route('/') def hello(): return "Hello, Azure!--2" if __name__ == '__main__': app.run(host='0.0.0.0', port=8000)
requirements.txt
Flask==3.1.0 openai==1.57.1
我的完整部署步骤
制作Zip包
- 打开存放
app.py和requirements.txt的文件夹 - 选中这两个文件
- 右键点击
app.py,选择压缩为ZIP文件
执行部署命令
curl -k -v -X POST -H 'Content-Type: application/zip' -u "<$app_service_user>:<60character_length_userPWD>" --data-binary @app.zip https://<appservicename>.scm.dev001.ase.frk.com/api/zipdeploy
从API日志流获取的错误信息
Site's appCommandLine: gunicorn --bind=0.0.0.0:8000 app:app Launching oryx with: create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -virtualEnvName antenv -defaultApp /opt/defaultsite -userStartupCommand 'gunicorn --bind=0.0.0.0:8000 app:app' Could not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml' Could not find operation ID in manifest. Generating an operation id... Build Operation ID: c9b33d68-8d6d-4326-9b08-257fe923d135 Oryx Version: 0.2.20240619.2, Commit: cf006407a02b225f59dccd677986973c7889aa50, ReleaseTagName: 20240619.2 Writing output script to '/opt/startup/startup.sh' WARNING: Could not find virtual environment directory /home/site/wwwroot/antenv. WARNING: Could not find package directory /home/site/wwwroot/__oryx_packages__. Booting worker with pid: 1075 [1075] [ERROR] Exception in worker process Traceback (most recent call last): File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker worker.init_process() File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process self.load_wsgi() File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi self.wsgi = self.app.wsgi() File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load return self.load_wsgiapp() File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp return util.import_app(self.app_uri) File "/opt/python/3.9.19/lib/python3.9/site-packages/gunicorn/util.py", line 371, in import_app mod = importlib.import_module(module) File "/opt/python/3.9.19/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/site/wwwroot/app.py", line 2, in <module> import openai ModuleNotFoundError: No module named 'openai' [1075] [INFO] Worker exiting (pid: 1075) [1064] [ERROR] Worker (pid:1075) exited with code 3 [1064] [ERROR] Shutting down: Master [1064] [ERROR] Reason: Worker failed to boot.
补充说明
我本地运行带openai依赖的代码完全没问题,但一部署到Azure就报ModuleNotFoundError: No module named 'openai'。日志里还提示找不到虚拟环境目录antenv和__oryx_packages__,不知道这和依赖没装成功有没有关系?
有没有大佬能帮我分析下可能的原因,或者给我一些排查的方向?谢谢大家了!
备注:内容来源于stack exchange,提问作者chiru
相关产品推荐
相关产品推荐

