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

2025-02-14 09:50:00
admin
原创
67
摘要:问题描述:如何在 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2809  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1713  
  PLM(产品生命周期管理)项目管理系统在企业产品研发与管理过程中扮演着至关重要的角色。然而,在项目推进过程中,资源冲突是不可避免的问题,它会影响项目进度、质量,甚至导致项目失败。有效解决资源冲突对于PLM项目管理系统的成功运行至关重要。接下来,我们将探讨应对资源冲突的5大策略。合作策略合作策略是一种双赢的解决方式。在P...
国内plm系统排名   7  
  产品生命周期管理(PLM)软件近年来在企业数字化转型进程中扮演着愈发重要的角色。对于中小企业而言,PLM软件的应用不仅是提升管理效率的工具,更是实现业务创新与可持续发展的关键助力。它涵盖了从产品的概念设计、研发、生产、销售到售后服务的全流程管理,通过整合企业内外部资源,优化业务流程,为企业创造显著的价值。然而,中小企业...
plm系统   9  
  项目复盘是项目管理中的重要环节,它能够帮助团队总结经验教训,提升后续项目的执行能力。PLM(产品生命周期管理)系统作为整合产品全生命周期信息的平台,为项目复盘提供了强大的支持。通过PLM系统实现项目复盘,能够更高效、全面地审视项目过程,挖掘潜在问题,为未来项目的成功奠定基础。明确复盘目标与范围明确复盘目标是项目复盘的首...
plm是什么意思   8  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用