Puncte:1

Migrare proiect python de la ubuntu la serverul ubuntu

drapel sd

Am câteva zile de experiență cu serverul ubuntu și îmi cer scuze pentru întrebările stupide.

Am scris un program python care funcționează bine pe Ubuntu 18.04LTS. Acum încerc să rulez același program pe UBUNTU SERVER. În interiorul scroptului am un apel de subproces ca acesta:

subprocess.call(["gnome-terminal", "--", "bash", "-c", string_as_parameters ])

Când încerc să rulez pe serverul Ubuntu, am o eroare:

[Eroare 2] Nu există un astfel de fișier sau director: 'gnome-terminal'

Dacă vreau să rulez programul atât pe server, cât și pe ubuntu normal, cum ar trebui să apelez subprocesul? Dacă nu este posibil, cum îmi schimb codul pentru serverul ubuntu?

Soren A avatar
drapel mx
Ubuntu-server este o interfață pură de linie de comandă, fără programe grafice / GUI. Prin urmare, terminalul gnome (sau orice alte programe grafice) nu este instalat.
luki avatar
drapel sd
Asta stiu acum. Cum să-mi rezolv problema? Ar trebui să apelez programul de subproces ca un program Python normal și să fac toate imprimările în fișier? Este altfel? Pot apela o nouă interfață de linie de comandă?
Soren A avatar
drapel mx
Nu sunt un programator python, dar nu este posibil să apelez și să execut bash direct?. fără nici o nevoie de suport grafic De asemenea, această problemă ar putea fi mai bine pusă într-un forum de programare - și cu o descriere mai clară a ceea ce încercați să implementați.
user535733 avatar
drapel cn
Pentru Ubuntu Server, pur și simplu omiteți primele două elemente ale listei.
cocomac avatar
drapel cn
Răspunde asta la întrebarea ta? [Cum să executați un program sau să apelați o comandă de sistem?](https://stackoverflow.com/a/89243/16886597) - @SorenA Da, este. Ai face `subprocess.call(["bash", "-c", string_as_parameters])`.
luki avatar
drapel sd
Acest apel a rezolvat problema mea: subprocess.Popen(['python3', path_to_file, arg1, arg2], preexec_fn=os.setpgrp) . Nu am putut folosi subprocess.call deoarece am 3 subprocese într-un singur script și primul program așteaptă să finalizeze primul apel.
luki avatar
drapel sd
putem închide această întrebare

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.