Я работаю над простым инструментом cli для изменения директорий проекта в текущем окне терминала. Инструмент cli написан в python с использованием пакета click. Судя по тому, что я видел, я не думаю, что можно изменить каталог, но, возможно, у кого-то есть такое понимание, которое могло бы помочь.
Для примера рабочего процесса
$ pwd
/home/username
$ grab open projectA
$ pwd
/home/username/projects/projectA
$ grab open projectB
$ pwd
/home/username/projects/different/location/projectB
То, что я знаю.
- Использование python
os.chdir(path)
работает только в рамках текущего скрипта и не влияет на терминал после его выполнения. - Попытка python
subprocess.run(['cd', 'path'])
будет throw a FileNotFoundError: [Errno 2] No such file or directory: 'cd'
- Running
$ source change_dir.sh
будет работать в командной строке, но попробуйте в subprocess
тот же FileNotFoundError
будет поднят. Обратите внимание, change_dir. sh - это простой скрипт, который использует cd для изменения пути.
Я действительно ищу способ обойти эту проблему или получить сообщение, что это невозможно сделать. Следующее, что я могу попробовать, - это запустить оболочку bash в терминале, аналогичную тому, что происходит при запуске виртуальной среды с python. Мне казалось, что это неправильный путь.
Любой совет будет полезным.