Python与Google App Engine:如何导入自定义模块?

0 投票
2 回答
694 浏览
提问于 2025-04-18 04:33

我有一个自定义模块,叫做 subprocess32.py,我把它放在了:

/Python/2.7/site-packages/subprocess32

还有 __init.py__ 文件。

我试着在 Python 命令行中导入这个包/模块,使用了:

from subprocess32 import subprocess32

这样做没问题,我可以使用里面的函数等。

我想在我的 Google 应用引擎应用中使用这个模块,我试过:

from subprocess 32 import subprocess32

但是我遇到了以下错误:

No module named subprocess32

我还试着把 subprocess32 文件夹和它的内容放到应用文件夹里,然后在输入之前把 sys.path 指向它,但还是不行。

如果有人能帮忙,我会非常感激,谢谢。

2 个回答

0

假设你的 subprocess32 是一个有效的 Python 模块。你需要把这个 subprocess32 模块复制粘贴到你的项目根目录下。然后再试着导入它。

2

把它安装在你的网站包目录里是没什么意义的。这个目录只存在于你的本地机器上,显然在你部署的时候是不会包含在内的,所以当你在生产环境中尝试导入它时就会出错。为了防止你这样做,开发服务器是在一个沙盒环境中运行的,这个环境也不会从那个目录导入东西,而且还不允许你修改sys.path。

所以,最好的办法是把它放在你的项目目录里,然后从那里导入。

编辑 其实,现在想想,我觉得这样做可能也帮不了你。你没有说明你的subprocess32模块具体是干什么的,但如果它和标准的subprocess模块有关系的话,你在GAE上是根本无法使用它的。因为在GAE上没有可以执行的系统命令,也没有办法执行任意的命令。你可能需要更详细地解释一下你想用这个模块做什么。

撰写回答