我正在尝试在Google App Engine上安装软件包。该软件包相当广泛地依赖于pkg_resources
,但是无法在App Engine上运行setup.py
。
但是,源代码中没有特定于平台的代码,所以只需压缩源代码并将其包含在系统路径中就没有问题。我已经安装了pkg_resources
版本并且也正常工作。
唯一的问题是使用pkg_resources
实际注册包,因此当它调用iter_entry_points
时,它可以找到相应的插件。
我需要使用哪些方法调用sys.path
上的模块以及所有适当的元数据,以及如何确定元数据需要什么?
答案 0 :(得分:1)
是的,对于基于setuptools的库,您需要同时部署库的“Egg”元数据。我发现最简单的方法是部署一个包含项目和所需库的整个virtualenv环境。
我手动执行了此过程,并将此代码添加到main.py,以pkg_resources
将起作用的方式初始化site-packages文件夹:
import site
site.addsitedir('lib/python2.5/site-packages')
但是,您可以尝试使用appengine-monkey来自动完成大部分内容。
答案 1 :(得分:0)
在本地开发系统上,运行python setup.py bdist_egg
,这将创建一个包含必要元数据的Zip存档。将其添加到sys.path
,它应该可以正常运行。
答案 2 :(得分:0)
像往常一样为包创建setup.py,然后使用“setup.py sdist --formats = zip”来构建源zip。构建的源zip将包含一个.egg-info元数据目录,然后pkg_resources可以找到该目录。或者,您可以对所有包使用bdist_egg。