33

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

4

6 回答 6

57

Google 为您的 GAE 项目中包含的第三方库提供了一种记录方式。

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

如果你想包含额外的纯 python 第三方包,你可以通过设置 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
于 2015-04-16T16:41:48.847 回答
47

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

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

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

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

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

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

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

例如:

from bs4 import BeautifulSoup
于 2013-02-13T10:44:17.250 回答
3

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

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

编辑:杰西的回答是我现在如何做到这一点。那就这样做吧!

于 2013-02-13T10:02:42.037 回答
1

它在这里的工作方式是:

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
于 2014-02-24T18:43:20.923 回答
0

只需将 Beautifulsoup 放在项目的根目录中并全部上传即可

于 2013-02-13T10:02:35.733 回答
0

pip install -t lib package_name

lib第三方库的位置

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

于 2016-02-04T06:18:38.723 回答