如何在Google App Engine中添加第三方python库,这些库不是由Google提供的?我正在尝试在Google App Engine中使用BeautifulSoup而无法这样做。但我的问题是我想在Google App Engine中使用的任何库。
答案 0 :(得分:53)
Google为GAE项目中包含的第三方库提供了一种记录方式。
请参阅"Adding Third-party Packages to the Application" section of the Libraries in Python 2.7 docs。
如果要包含其他纯python第三方软件包,可以通过设置vendoring来实现。供应允许您将包安装到项目的子目录中,并将它们包含在您的代码中。要使用vendoring,请在项目的根目录中创建(或修改) appengine_config.py 。
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
然后把你所有的libs' 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
答案 1 :(得分:46)
实际上我觉得this answer在这里更合适。
如果您想使用this list中未包含的第三方库,则必须手动添加它们。
为了手动包含任何其他库,您必须将它们放在app.yaml
所在的目录中。例如,如果您有以下结构:
hello
├── libs
│ └── bs4
├── hello.py
└── app.yaml
然后在你的hello.py
中,你必须将这两行放在文件的开头:
import sys
sys.path.insert(0, 'libs')
完成此操作后,您将能够使用您要放在libs
目录中的任何第三方库。
例如:
from bs4 import BeautifulSoup
答案 2 :(得分:3)
答案 3 :(得分: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
答案 4 :(得分:0)
只需将Beautifulsoup放在项目的根目录中并上传所有内容
答案 5 :(得分:0)
pip install -t lib package_name
lib :第三方库的位置
然后你可以使用这个软件包,就像你从ipython或终端使用的普通库一样。