一尘不染

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

python

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


阅读 481

收藏
2020-02-22

共2个答案

一尘不染

为了手动包括任何其他库,你必须将它们放在其中的目录中app.yaml。因此,例如,如果你具有以下结构:

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

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

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

完成此操作后,你将能够使用要放入该libs目录的任何第三方库。

例如:

from bs4 import BeautifulSoup
2020-02-22
一尘不染

Google为你的GAE项目中包含的第三方库提供了一种有据可查的方法。

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

如果要包括其他纯Python第三方程序包,可以通过设置供应商来实现。供应商允许你将软件包安装到项目的子目录中,并将其包含在代码中。要使用供应商,请在项目的根目录中创建(或修改)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

这将允许你项目的源文件导入libs的程序包/模块,就像它们已添加到你的中一样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

2020-02-22