ethanak Napisano Maj 27, 2023 Udostępnij Napisano Maj 27, 2023 Dzisiaj naprawdę krótko. Ostatnio dość często muszę uruchamiać programy w Pythonie (nad którymi pracuję) na zdalnych maszynach. Normalnie jest to proste: mam otwarty terminal, loguję się przez ssh na zdalną maszynę i wydaję polecenie uruchomienia programu. Cóż - wrodzone lenistwo kazało mi uprościć tę czynność 🙂 Założenia: systemem na którym pracuję lokalnie jest Linux, taki też jest na zdalnej maszynie; katalog z programem mam podmontowany przez sshfs (np. przez wpis w fstab, programem Gigolo lub poleceniem 'gio mount') używany przeze mnie edytor to Geany Ponieważ Geany potrafi przyporządkować polecenie "Execute" do konkretnego typu pliku, postanowiłem zmienić nieco domyślne ustawienia dla Pythona. Prawdopodobnie można to zrobić dla innych edytorów, ale akurat tego używam. Zacząłem od napisania prostego programu, który odróżnia plik lokalny od zdalnego i w zależności od tego albo wywołuje lokalnie Pythona, albo robi to na zdalnej maszynie: #!/usr/bin/env python3 import sys, os dy = sys.argv[1] fn = sys.argv[2] import re r=re.search(r'sftp:host=(.*?),user=(.*?)(/.*)$',dy) if not r: os.execl('/usr/bin/python3','python3',fn) host=r.group(1) user=r.group(2) dry=r.group(3) import shlex cmd=shlex.join(['cd',dry]) + ' && ' + shlex.join(['/usr/bin/python3',fn]) os.execl('/usr/bin/ssh','ssh',user+'@'+host,cmd) Program (nazwałem go pyssh.py) wrzuciłem sobie do ~/bin W Geany otworzyłem dowolny plik w Pythonie (aby powiedzieć mu, że ten język mnie interesuje). W menu "Zbuduj" wybrałem "Zdefiniuj polecenia budowania". Teraz w polu Execute w miejscw domyślnego: python3 "%f" wpisałem wykonanie mojego programu: python3 /home/ethanak/bin/pyssh.py "%d" "%f" Jak widać przekazuję tam nazwę katalogu w którym siedzi plik oraz nazwę samego pliku. Program na podstawie nazwy katalogu decyduje, czy ma odpalić Pythona lokalnie, czy zalogować się na zdalny host, ustawić ścieżkę i tam wywołać Pythona. Proste... a jak umila życie, wystarczy F5 zamiast wpisywania polecenia 🙂 2 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »