在Google App Engine上使用SetupTools动态下载和安装Python模块

3 投票
2 回答
829 浏览
提问于 2025-04-17 10:35

我想在我的App Engine应用里添加一个管理部分,这样我就可以动态下载和安装Python模块。

有没有什么好的方法可以做到这一点,而不需要写入文件系统呢?

有没有类似的例子可以参考?

使用python27的setuptools会不会让这个过程更简单?

编辑:

我最初的想法是,可以通过动态下载一个egg或zip文件来实现。然后把它保存到blobstore里,再从那里加载。

这样做可行吗?

这样会带来什么样的性能问题呢?

2 个回答

1

在你的应用程序目录里,创建一个叫做'lib'的文件夹。想要添加的模块,只需解压缩它,然后放到lib文件夹里。接着,通过控制台或Google应用启动器重新部署你的应用。每次想添加新模块时,都要重复这个步骤。

我不是百分之百确定,但我觉得如果你不想手动操作的话,可以考虑动态地将模块内容作为一个blob存储项添加,并在运行时加载这个模块。

不过,正如之前的回答所说,要使用一个包,它的代码必须在你的应用中存在。

2

在谷歌应用引擎(GAE)上,你无法访问文件系统,这就是为什么你不能在你的实例上安装任何第三方软件包的原因。你只能把这些软件包和你自己的代码一起打包分发。

撰写回答