У меня есть скрипт python, обрабатывающий файлы в каталоге в Linux Mint. Часть кода, как в следующем:Как бороться с путями с пробелами в Linux при кодировании в Python 2.7?
path_to_dir = "/home/user/Im a folder with libs to install/"
if os.path.isdir(path_to_dir):
print "it can locate the directory"
os.chdir(path_to_dir) # everything ok here :D
subprocess.call(['./configure'], shell = True)
subprocess.call(['make'], shell = True)
subprocess.call(['make install'], shell = True) # problem happens here
При выполнении subprocess.call(['make install'], shell = True)
он выдает эту ошибку:
/bin/bash: /home/user/Im: No such file or directory
make[3]: *** [install-libLTLIBRARIES] Error 127
make[2]: *** [install-am] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1
Как я могу иметь дело с пробелами в пути при выполнении subprocess.call(['make install'], shell = True)
? (Я использую Python 2.7)
Редактировать: Я обнаружил источник ошибок: Makefile из библиотек, которые я использую (скачанный откуда-то в Интернете), не поддерживает пробелы в пути.
Я тестировал ответ, данный здесь с помощью этого кода в терминале, расположенном в пути «/ дом/пользователь/Im папки с LIBS для установки /» и с использованием учетной записи суперпользователя:
./configure
make
make install /home/user/Im\ a\ folder\ with\ libs\ to\ install/Makefile
Это дает меня та же ошибка:
/bin/bash: /home/user/Im: No such file or directory
[install-libLTLIBRARIES] Error 127
make[3]: se sale del directorio «/home/user/Im a folder with libs to install/»
make[2]: *** [install-am] Error 2
make[2]: se sale del directorio «/home/user/Im a folder with libs to install/»
make[1]: *** [install-recursive] Error 1
make[1]: se sale del directorio «/home/user/Im a folder with libs to install/»
make: *** [install-recursive] Error 1
он может найти папку, но, кажется, что внутри, она проходит путь к Linux Баш без каких-либо усиков символов.
Я принимать NAFAS в ответ, потому что он помог мне найти источник проблемы.