我的网络服务器上运行着一个 Flask 应用程序,可以根据用户选择的主机名 POST 来调用不同的远程服务器。 Web 服务器 Flask 应用程序对用户所需的主机名进行 SSH 调用(使用 paramiko
)来运行 python 脚本。
目前,我必须为我想在后端调用的每个函数手动创建一个 python 脚本,否则我会遇到导入错误(因为我的网络服务器 Flask 没有与远程服务器相同的 python 环境)。
例如,在我的后端远程服务器上,如果我想从后端 Python 模块调用函数,我必须创建如下内容:
myScript.py:
#!/usr/bin/python3
from myPackage import myModule
myModule.myFunction()
并从网络服务器 Flask 应用程序调用它,如下所示:
client.exec_command('(cd /myDir; ./myScript.py:)')
我的问题是,有没有办法刺激后端python环境并直接调用python模块,或者甚至如何能够从后端导入模块,这样我就不必创建单独的我想调用的每个函数的脚本?
最佳答案
您可能会对两种 Python 解释器选项感兴趣:
- 如果you run it as
python -c "print('foobar')"
您可以将脚本作为文本传递,并且不会在 Remote 上创建任何文件。 - 如果您以
python -
在远程运行它,它将以交互模式启动并列出来自标准输入的命令。我从来没有用paramiko做过,但是as I can see 、paramiko支持交互模式下运行命令。
附注仍然不确定我是否正确理解了您的问题,希望这有帮助。
关于python - 在网络服务器上运行的 Flask 应用程序调用远程服务器 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51392232/