我们有一个python2.7脚本,它在本地执行得非常好。在
只有当我尝试远程调用脚本(SSH)时才会出现问题:
ssh user@server "python script.py"
*Traceback (most recent call last):
File "script.py", line 18, in <module>
import requests
ImportError: No module named requests*
在做了一点研究之后,我尝试使用系统路径插入导入库之前:
^{pr2}$我甚至通过打印系统路径远程调用脚本时:
print '\n'.join(sys.path)
结果:
/usr/local/lib/python2.7/site-packages/setuptools-20.9.0-py2.7.egg
/usr/local/lib/python2.7/site-packages/requests-2.10.0-py2.7.egg
/usr/local/lib/python27.zip
/usr/local/lib/python2.7
/usr/local/lib/python2.7/plat-linux2
/usr/local/lib/python2.7/lib-tk
/usr/local/lib/python2.7/lib-old
/usr/local/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/site-packages
但是,不管怎样,我仍然得到“ImportError:No module named requests”。在
你能帮我理解我缺少什么吗?在
同样,这个脚本确实可以找到库,并且在本地执行脚本时运行得非常好。在
谢谢!在
requests
是一个非标准的Python库。确保它安装在您尝试执行脚本的远程设备上。在在远程,从shell执行:
如果我理解正确的话,您尝试在同一台机器上运行相同的脚本,但是一次是从本地shell运行,一次从远程shell运行(使用
ssh
)。在如果是这种情况,那么在使用远程shell时,请确保正确设置了环境。在
这可以归结为只需正确设置
PYTHONPATH
环境变量。在在您的情况下,这将是:
您可能需要添加更多的路径。在
{I通常是从python环境中的一个条目中获取的,{I)通常是从一个正在运行的python环境中获取的,因此我可以从这个环境中的一个条目来检查
^{pr2}$对于这个例子,如果我不能正确地
import requests
,我会将/usr/local/lib/python2.7/site-packages/
添加到我的PYTHONPATH
中。在相关问题 更多 >
编程相关推荐