sshfs
не монтируется, если удаленный хост не поддерживает местную локаль (LC_ALL). Поиск в Google указал мне на www.knoppixforum.de о том, как справиться с этой проблемой на bash.
Но мне нужно позвонить sshfs
из python
. (Неудачная) команда выглядит так:
import subprocess
subprocess.check_call(['sshfs', 'HOST:~/SRC', '~/DST'])
Другой поиск указал мне на "Установить кодировку локали в 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
env
, как во втором фрагменте кода, и запустите толькоsubprocess.check_call(['env'], env=env)
, увидите ли выLC_ALL
в выводе? - person Warren Weckesser   schedule 21.10.2012subprocess.check_call(['locale'], env=env)
показывает правильную локаль. @PedroRomano: я использую sshfs, чтобы предоставить доступ к файлам графическому интерфейсу и процессу take_snapshot BackInTime в строка 77 sshtools.py - person Germar   schedule 21.10.2012