为sshfs设置env

时间:2012-10-21 16:31:18

标签: python environment-variables sshfs

如果远程主机不支持本地语言环境(LC_ALL),

sshfs将无法安装。 Goolge搜索向我指出如何在bash上处理这个问题的www.knoppixforum.de

但我需要从sshfs致电python。 (失败)命令如下所示:

import subprocess
subprocess.check_call(['sshfs', 'HOST:~/SRC', '~/DST'])

另一个搜索指向'Set locale encoding in python'。所以我认为应该看起来像:

import os, subprocess
env = os.environ.copy()
env['LC_ALL'] = 'en_US.UTF-8'
subprocess.check_call(['sshfs', 'HOST:~/SRC', '~/DST'], env = env)

但这也不起作用。我认为它失败了,因为sshfs为ssh分叉了一个不熟悉我的env变量的新进程?

错误消息始终为:remote host has disconnected

1 个答案:

答案 0 :(得分:0)

哈哈,我欺骗了自己!我的上述方法确实有效。除了'en_US.UTF-8'在我用于测试的机器上不可用。在对bash进行测试期间,我之前使用了'de_DE.UTF-8'。

LC_ALL ='C'一切都像预期的那样工作。所以正确的解决方案是:

import os, subprocess
env = os.environ.copy()
env['LC_ALL'] = 'C'
subprocess.check_call(['sshfs', 'HOST:~/SRC', '~/DST'], env = env)