如何在 Google App Engine 中包含第三方 Python 库?

2025-02-14 09:50:00
admin
原创
42
摘要:问题描述:如何在 Google App Engine 中添加非 Google 提供的第三方 Python 库?我尝试在 Google App Engine 中使用 BeautifulSoup,但无法做到。但我的问题是我想在 Google App Engine 中使用任何库。解决方案 1:Google 已提供在...

问题描述:

如何在 Google App Engine 中添加非 Google 提供的第三方 Python 库?我尝试在 Google App Engine 中使用 BeautifulSoup,但无法做到。但我的问题是我想在 Google App Engine 中使用任何库。


解决方案 1:

Google 已提供在 GAE 项目中包含第三方库的文档化方法。

请参阅Python 2.7 文档中的库的“向应用程序添加第三方包”部分。

如果您想要包含其他纯 Python 第三方软件包,可以通过设置 vendoring 来实现。Vendoring 允许您将软件包安装到项目的子目录中并将其包含在代码中。要使用 vendoring,请在项目的根目录中创建(或修改)appengine_config.py

from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')

然后将所有库的源代码放入你的lib目录中

> pip install beautifulsoup4 -t lib

因此你的项目目录结构如下所示:

project
- lib
  - bs4
- your_code.py

这将允许你的项目的源文件导入库的包/模块,就像它们被添加到你的一样PYTHON_PATH。例如:

# file: your_code.py
import bs4  # no need for 'from lib import bs4'
# do stuff with bs4...

您还可以通过以下命令轻松安装 requirements.txt 文件中的所有内容

> pip install -t lib -r requirements.txt

解决方案 2:

实际上我认为这个答案更适合这里。

如果您想使用此列表中未包含的第三方库,则必须手动添加它们。

为了手动包含任何其他库,您必须将它们放在所在目录中app.yaml。例如,如果您有以下结构:

hello
├── libs
│   └── bs4 
├── hello.py 
└── app.yaml

然后hello.py你必须在文件的开头放入这两行:

import sys
sys.path.insert(0, 'libs')

完成后,您将能够使用放在该libs目录中的任何第三方库。

例如:

from bs4 import BeautifulSoup

解决方案 3:

您只需将包含要使用的库的文件夹复制到您的应用引擎项目中。

然后,当您部署时,它会与您的应用程序一起上传并可供使用。

编辑:杰西的回答是我现在该怎么做。那就这么做吧!

解决方案 4:

这里的工作方式是:

import sys
# sys.path.insert(0, 'libs') #"Old" way, not working for me.
sys.path.append(os.path.join(os.path.dirname(__file__), "libs")) # This works!

然后正常导入:

from bs4 import BeautifulSoup

解决方案 5:

只需将 Beautifulsoup 放在项目根目录中,然后将其全部上传即可

解决方案 6:

pip install -t lib 包名称

lib第三方库的位置

然后您就可以像使用 ipython 或终端中的普通库一样使用这个包。

解决方案 7:

2024 年更新,供任何想弄清楚这一点的人参考

我在这里找到了答案: https: //groups.google.com/g/google-appengine/c/e21mD63LCrs

他说

供应商提供的方法(安装到 lib/ 并添加 appengine_config.py 文件)对于标准环境中的 Python 2.7 是正确的:
https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27
标准环境中的 Python 3.7 和灵活环境中的所有 Python 版本都使用 virtualenv 并将安装 requirements.txt 中指定的库,因此您不需要创建 lib 文件夹,并且 appengine_config.py 将被忽略:
https://cloud.google.com/appengine/docs/standard/python3/specifying-dependencies
https://cloud.google.com/appengine/docs/flexible/python/runtime#dependencies
Compute Engine 是一个完全不同的系统,它以虚拟机而不是应用程序的方式工作,所以恐怕这些都不适用于那里。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1572  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1355  
  信创产品在政府采购中的占比分析随着信息技术的飞速发展以及国家对信息安全重视程度的不断提高,信创产业应运而生并迅速崛起。信创,即信息技术应用创新,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。政府采购作为推动信创产业发展的重要力量,其对信创产品的采购占比情况备受关注。这不仅关系到信创产业的发展前...
信创和国产化的区别   0  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。近年来,国货国用信创发展势头迅猛,在诸多领域取得了显著成果。这一发展趋势对科技创新产生了深远的推动作用,不仅提升了我国在信息技术领域的自主创新能力,还为经济社会的数字化转型提供了坚实支撑。信创推动核心技术突破信创产业的发展促使企业和科研...
信创工作   0  
  信创技术,即信息技术应用创新产业,旨在实现信息技术领域的自主可控与安全可靠。近年来,信创技术发展迅猛,对中小企业产生了深远的影响,带来了诸多不可忽视的价值。在数字化转型的浪潮中,中小企业面临着激烈的市场竞争和复杂多变的环境,信创技术的出现为它们提供了新的发展机遇和支撑。信创技术对中小企业的影响技术架构变革信创技术促使中...
信创国产化   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用