1

我正在尝试在 Google App Engine 上安装一个包。该软件包相当广泛地依赖于pkg_resources,但无法setup.py在 App Engine 上运行。

但是,源代码中没有特定于平台的代码,因此只需压缩源代码并将其包含在系统路径中是没有问题的。而且我已经pkg_resources安装了一个版本并且可以正常工作。

唯一的问题是让包实际注册pkg_resources所以当它调用时,iter_entry_points它可以找到合适的插件。

我需要调用哪些方法来sys.path使用所有适当的元数据注册模块,以及如何确定元数据需要是什么?

4

3 回答 3

1

是的,对于基于 setuptools 的库,您需要同时部署库的“Egg”元数据。我发现最简单的方法是部署一个包含您的项目和所需库的整个virtualenv环境。

我手动完成了这个过程,并将这段代码添加到 main.py 中,以一种可行的方式初始化 site-packages 文件夹pkg_resources

import site
site.addsitedir('lib/python2.5/site-packages')

但是,您可以尝试appengine-monkey为您自动完成大部分操作。

于 2009-03-24T08:19:40.413 回答
0

在您的本地开发系统上,运行python setup.py bdist_egg,这将创建一个包含必要元数据的 Zip 存档。将其添加到您的sys.path中,它应该可以正常工作。

于 2009-04-13T18:24:17.457 回答
0

像往常一样为包创建 setup.py,然后使用“setup.py sdist --formats=zip”构建源 zip。构建的源 zip 将包含一个 .egg-info 元数据目录,然后 pkg_resources 可以找到该目录。或者,您可以对所有软件包使用 bdist_egg。

于 2010-01-29T18:15:48.983 回答