内置库VS库安装在“lib”文件夹中

问题描述 投票:2回答:2

我想在GAE上使用firebase-admin。所以我按照方法安装了firebase-admin。

https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27

app engine_config.朋友

from google.appengine.ext import vendor

# Add any libraries install in the "lib" folder.
vendor.add('lib')

requirements.txt

firebase-admin

并安装它。

pip install -t lib -r requirements.txt

然后我检查了“lib”文件夹,六个存在。六个版本是1.11.0。

但我已经使用内置的六个。

的app.yaml

libraries:
- name: six
  version: latest

内置六个版本是“1.9.0”。

这些差异对GAE的过程有影响吗?如果有任何影响,如何解决?

python python-2.7 google-app-engine google-cloud-platform
2个回答
1
投票

如果lib目录和app.yaml中存在不同版本的库,则lib目录中的库是可供应用程序使用的库。所以,实际上,你的应用程序将使用六个1.11.0。您可以通过记录six.__version__来验证这一点,并查看您获得的版本。

为了避免混淆,我可能会删除app.yaml中的六个库条目。


1
投票

firebase-adminrequires six>=1.6.1,因此在1.11.0版本中手动复制到您的应用程序不会导致该库出现问题。

但是,您应该确保您最初添加six依赖项的应用程序中的代码将适用于此更高版本,因为复制库将优先于任何built-in libraries(因此在app.yaml中指定它也是不必要的)。

值得一提的是,复制的库会计入文件配额,因为库会随着您的应用程序代码一起上传到App Engine。如果您担心达到此配额,you can use this this technique to only install the dependencies that aren't already built-in,这将减少整体文件大小。

© www.soinside.com 2019 - 2024. All rights reserved.