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

2025-02-14 09:50:00
admin
原创
41
摘要:问题描述:如何在 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用