在Google Cloud SDK中运行webapp2(Python)的本地开发服务器时找不到Python模块

2024-09-28 21:56:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在googlecloudsdk中运行webapp2服务器,并使用Naked模块来运行节点.js从Python2在一个流浪箱脚本。 启动具有此代码段的服务器时

from Naked.toolshed.shell import muterun_js


def get_signed_hash(username):

    response_from_js = muterun_js('./views/api/generateSignedTransaction.js',
                                  nonce)
    signed_hash = response_from_js.stdout
    print('0x' + signed_hash)

我收到这个错误消息

ImportError: No module named Naked.toolshed.shell

我也在使用requests库,这不会造成任何问题。试图调试包的位置问题,它们都在同一个位置:

^{pr2}$

事实上,我在与调用get_signed_hash('username')的独立文件相同的位置运行了该脚本,并且它成功地运行了。还有别的地方需要我检查吗?在


Tags: from服务器脚本getresponsejsusernamehash
1条回答
网友
1楼 · 发布于 2024-09-28 21:56:42

对于第一代标准环境,应用程序的依赖性需要安装在应用程序内(或供应商)。在系统site-packages(常规的独立应用程序从中加载库)中还不够。即使你以某种方式说服了本地开发服务器来运行这个应用程序,当它上传到GAE时它也不会工作,因为GAE不能访问你的本地系统。在

通常,您会将库(及其所有依赖项)安装在app dir中的lib目录中,这样它们就可以与应用程序一起上载到GAE。见Copying a third-party library。在

或者,您可以尝试将Naked目录符号链接到您的lib目录中,如果它的所有其他依赖项都已经以类似的方式得到满足,那么这就可以工作了。见相关How do I access a vendored library from a module in Python Google App Engine?

相关问题 更多 >