为什么 requirements.txt 没有在部署到 AppEngine 时安装?
Why is requirements.txt not being installed on deployment to AppEngine?
我正在尝试将现有项目升级到新的 Python 3 AppEngine 标准环境。我能够部署我的应用程序代码,但是该应用程序崩溃了,因为它找不到 requirements.txt 文件中定义的依赖项。应用程序文件结构如下所示:
|____requirements.txt
|____dispatch.yaml
|____dashboard
| |____dashboard.yaml
| |____static
| | |____gen
| | | |____favicon.ico
| | | |____fonts
| | | | |____MaterialIcons-Regular.012cf6a1.woff
| | | |____app.js
| | |____img
| | | |____avatar-06.png
| | | |____avatar-07.png
| | | |____avatar-05.png
| | | |____avatar-04.png
| |____templates
| | |____gen
| | | |____index.html
| |____main.py
| |____.gcloudignore
|____.gcloudignore
requirements.txt
文件如下所示:
Flask==0.12.2
pyjwt==1.6.1
flask-cors==3.0.3
requests==2.19.1
google-auth==1.5.1
pillow==5.3.0
grpcio-tools==1.16.1
google-cloud-storage==1.13.0
google-cloud-firestore==0.30.0
requests-toolbelt==0.8.0
Werkzeug<0.13.0,>=0.12.0
firestore-model>=0.0.2
部署后,当我在网络上访问该站点时,收到 502。GCP 控制台错误报告服务表明错误是从 main.py
中的一行抛出的,它试图导入其中一个以上依赖项:ModuleNotFoundError: No module named 'google'
我尝试将 requirements.txt
移动到仪表板文件夹中并得到相同的结果。
堆栈跟踪:
Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104, in init_process
super(ThreadWorker, self).init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
self.load_wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
self.wsgi = self.app.wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
return self.load_wsgiapp()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
return util.import_app(self.app_uri)
File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
__import__(module)
File "/srv/main.py", line 12, in <module>
from google.cloud import storage
ModuleNotFoundError: No module named 'google'
有些地方可能出了问题。确保:
- 您的
requirements.txt
文件与您的 main.py
文件位于同一目录中
- 您的
.gcloudignore
没有忽略您的 requirements.txt
文件
- 您正在将函数部署在与
requirements.txt
和 main.py
相同的目录中
我正在尝试将现有项目升级到新的 Python 3 AppEngine 标准环境。我能够部署我的应用程序代码,但是该应用程序崩溃了,因为它找不到 requirements.txt 文件中定义的依赖项。应用程序文件结构如下所示:
|____requirements.txt
|____dispatch.yaml
|____dashboard
| |____dashboard.yaml
| |____static
| | |____gen
| | | |____favicon.ico
| | | |____fonts
| | | | |____MaterialIcons-Regular.012cf6a1.woff
| | | |____app.js
| | |____img
| | | |____avatar-06.png
| | | |____avatar-07.png
| | | |____avatar-05.png
| | | |____avatar-04.png
| |____templates
| | |____gen
| | | |____index.html
| |____main.py
| |____.gcloudignore
|____.gcloudignore
requirements.txt
文件如下所示:
Flask==0.12.2
pyjwt==1.6.1
flask-cors==3.0.3
requests==2.19.1
google-auth==1.5.1
pillow==5.3.0
grpcio-tools==1.16.1
google-cloud-storage==1.13.0
google-cloud-firestore==0.30.0
requests-toolbelt==0.8.0
Werkzeug<0.13.0,>=0.12.0
firestore-model>=0.0.2
部署后,当我在网络上访问该站点时,收到 502。GCP 控制台错误报告服务表明错误是从 main.py
中的一行抛出的,它试图导入其中一个以上依赖项:ModuleNotFoundError: No module named 'google'
我尝试将 requirements.txt
移动到仪表板文件夹中并得到相同的结果。
堆栈跟踪:
Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104, in init_process
super(ThreadWorker, self).init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
self.load_wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
self.wsgi = self.app.wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
return self.load_wsgiapp()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
return util.import_app(self.app_uri)
File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
__import__(module)
File "/srv/main.py", line 12, in <module>
from google.cloud import storage
ModuleNotFoundError: No module named 'google'
有些地方可能出了问题。确保:
- 您的
requirements.txt
文件与您的main.py
文件位于同一目录中 - 您的
.gcloudignore
没有忽略您的requirements.txt
文件 - 您正在将函数部署在与
requirements.txt
和main.py
相同的目录中