我在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
库,这不会造成任何问题。试图调试包的位置问题,它们都在同一个位置:
事实上,我在与调用get_signed_hash('username')
的独立文件相同的位置运行了该脚本,并且它成功地运行了。还有别的地方需要我检查吗?在
对于第一代标准环境,应用程序的依赖性需要安装在应用程序内(或供应商)。在系统
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?相关问题 更多 >
编程相关推荐