如何在Google App Engine中包含第三方Python库?
如何在Google App Engine中添加Google提供的第三方Python库? 我正尝试在Google App Engine中使用BeautifulSoup,但无法这样做。 但我的问题是我想要在Google App Engine中使用的任何库。
其实我觉得这个答案在这里更合适。
如果您想要使用未包含在此列表中的第三方库,则必须手动添加它们。
为了手动包含任何其他库,您必须将它们放在app.yaml
所在的目录中。 所以例如,如果你有以下结构:
hello ├── libs │ └── bs4 ├── hello.py └── app.yaml
然后在你的hello.py
你必须把这两行放在文件的开头:
import sys sys.path.insert(0, 'libs')
这样做之后,您将可以使用任何第三方库,您将放在该libs
目录中。
例如:
from bs4 import BeautifulSoup
Google为您的GAE项目提供了包含第三方库的文档化方式。
请参阅Python 2.7文档库中的“将第三方软件包添加到应用程序”部分 。
如果你想包含额外的纯python第三方包,你可以通过设置vendoring来实现。 供应商允许您将软件包安装到项目的子目录中,并将其包含在您的代码中。 要使用自定义,请在项目的根目录下创build(或修改) 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
您只需将包含要使用的库的文件夹复制到您的应用程序引擎项目中即可。
然后,当您将其部署到您的应用程序上时,可供使用。
编辑: 杰西的答案是我如何做到这一点。 那就这样做!
它在这里的工作方式是:
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
只需将Beautifulsoup放在项目的根目录下,然后全部上传
pip install -t lib package_name
lib : 第三方库的位置
那么你可以像使用ipython或者terminal的普通库一样使用这个包。
- 为什么在Google App Engine上使用Django?
- Google地理编码API – REQUEST_DENIED
- 如何使用实体键在GQL中进行查询?
- 无法在Intellij IDEA中设置Java断点
- 使用标准库可以在Go中嵌套模板吗? (Google App Engine)
- Eclipse和Google App Engine:ImportError:没有名为_sysconfigdata_nd的模块; 无法识别的参数:–high_replication
- 上传Google App Engine中的文件
- AppEngine错误
- 使用Python在Google App Engine数据存储中复制实体,而不必在“编译”时知道属性名称