python在使用ssh时找不到模块

python在使用ssh时找不到模块,python,ssh,Python,Ssh,我在服务器上使用python。当我运行需要numpy模块的python命令时 ssh <server name> <python command> 对。这还意味着用户的.bashrc中有一些特定的内容,可以修改$PATH,以允许您访问额外的模块。我个人不喜欢在全局级别修改path,因此我建议使用Python方法:调用sys.path.append('/path/to/numpy')检查并确保使用相同的Python环境。登录时您可能正在使用/usr/bin/python之

我在服务器上使用python。当我运行需要numpy模块的python命令时

ssh <server name> <python command>

对。这还意味着用户的.bashrc中有一些特定的内容,可以修改
$PATH
,以允许您访问额外的模块。我个人不喜欢在全局级别修改path,因此我建议使用Python方法:调用
sys.path.append('/path/to/numpy')
检查并确保使用相同的Python环境。登录时您可能正在使用/usr/bin/python之类的安装,而在尝试远程运行时,您可能正在使用不同的安装,例如/usr/local/bin/python。

我发现了问题。这确实是python路径的问题

我没有发现这一点的原因是

ssh <server name> echo $PYTHONPATH
ssh echo$PYTHONPATH
要查找所有路径,python搜索模块

我们应该这样做

ssh <server name> 'echo $PYTHONPATH'
ssh'echo$PYTHONPATH'

当在一行中通过ssh运行cmd时,我们不能忽略检查服务器上变量PYTHONPATH的引号,不会读取.profile。 要进行测试,请尝试以下操作:

ssh host env
改为使用此选项解决此问题(必须使用引号):

例如:

ssh.~/。bashrc;'

也有同样的问题,并尝试了上述所有方法

对我有效的是将远程命令从python更改为完整路径

i、 e

1) SSH连接到远程服务器上,通过


2) 将命令从
python pyscript.py
更改为
remote/path/to/python pyscript

,谢谢您的回复。请看一下我添加的内容。还是路径问题吗。谢谢你的回复。请看一下我添加的内容。我认为当我登录并远程运行时,python环境是相同的。
ssh <server name>
which python
echo $PYTHONPATH 
echo $PYTHONUSERBASE
echo $LD_LIBRARY_PATH
ssh <server name> echo $PYTHONPATH
ssh <server name> 'echo $PYTHONPATH'
ssh host env
ssh host '. ~/.profile; cmd'
ssh <server name> '. ~/.bashrc; <python command>'