1

sshfs如果远程主机不支持本地语言环境 (LC_ALL),则挂载失败。Goolge 搜索将我指向www.knoppixforum.de,了解如何在 bash 上处理此问题。

但我需要sshfspython. (失败的)命令如下所示:

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 派生了一个新进程,它不擅长我的环境变量?

错误信息总是:remote host has disconnected

4

1 回答 1

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)
于 2012-10-22T13:37:47.240 回答