PROBLEMA Python problema modulo subprocess

Shini_x93

Nuovo Utente
55
5
CPU
intel i5 6400 skylake
Scheda Madre
Asus h170 pro4s
RAM
2x 4GB HyperX Fury DDR4
GPU
Zotac gtx 970
Salve a tutti, prima di iniziare vorrei fare una premessa, prima di iniziare a studiare python non conoscevo nessun linguaggio di programmazione se non Heidenain, Selca, Fanuc ma servono per programmare CNC, trovo che python sia divertente da usare e da imparare e mi sto appassionando a questo mondo, stavo seguendo una guida dove era appena stato introdotto appunto il modulo subprocess, il problema è questo, dopo aver importato il modulo e lanciato il comando subprocess.run (["*nomeapp*"]) mi compaiono diversi errori, se inserisco semplicemente il nome tipo Word l'errore è [WinError 2] Impossibile trovare il file specificato se invece il nome è valido, quindi Word.ink l'errore è [WinError 193] %1 non è un'applicazione di Win32 valida cercando un pò in rete sembra che il nome del file da mettere sia l'eseguibile quindi ho agito in questo modo:
avviato word, gestione attività,dettagli,tasto destro,apri percorso file poi copiavo il percorso e lo inserivo in os.chdir poi dando il nome corretto dell'eseguibile quindi WINWORD.exe l'applicazione si apre correttamente, ho capito che se l'eseguibile è nell'attuale directory il file viene trovato, come posso fare per ovviare a questa cosa?
chiedo scusa per la spiegazione probabilmente poco chiara ma dire che sono agli inizi è già tanto

grazie
 

Edmund Blackadder

Utente Attivo
327
171
Penso che per risolvere il problema basti aggiungere l'eseguibile che ti interessa al PATH. Dopo che un eseguibile viene aggiunto al PATH è possibile avviare l'applicativo anche da terminale e di conseguenza dovrebbe funzionare anche subprocess.run.
 
  • Mi piace
Reazioni: Shini_x93

Shini_x93

Nuovo Utente
55
5
CPU
intel i5 6400 skylake
Scheda Madre
Asus h170 pro4s
RAM
2x 4GB HyperX Fury DDR4
GPU
Zotac gtx 970
Intanto ti ringrazio per la risposta,non è possibile avere una cosa simile come su Linux? Nel video che ho seguito imposta la directory sul desktop e poi con run riesce ad avviare le applicazioni, non ne ho un reale bisogno, era più a scopo didattico, dopo ogni "lezione"mi invento degli esercizi..
 

Shini_x93

Nuovo Utente
55
5
CPU
intel i5 6400 skylake
Scheda Madre
Asus h170 pro4s
RAM
2x 4GB HyperX Fury DDR4
GPU
Zotac gtx 970
Si, certo! eccolo se qualcuno ha da consigliarmi qualche video / corso o meglio di tutto libri sarebbe fantastico! capisco che limita il tutto tantissimo ma in inglese non sono una scheggia, se c'è del materiale valido in italiano, sarebbe perfetto!

p.s. ho già spulciato tutto il materiale presente nella discussione:
[Tutti i linguaggi] Raccolta di materiale di studio, manuali, tutorial, risorse.

grazie
 

Edmund Blackadder

Utente Attivo
327
171
non è possibile avere una cosa simile come su Linux?
Su Linux funziona perché tutti i programmi che installi dai repo della distro sono poi eseguibili dal terminale, quindi in qualsiasi cartella ti trovi puoi avviare vlc semplicemente scrivendo "vlc". Pensandoci mi è venuto in mente un modo alternativo (che però non usa il subprocess). Su Windows per avviare da riga di comando un programma che non si trova nel PATH puoi usare start nome_programma. Quindi in Python potremmo usare:
Python:
import os

os.chdir(r"C:\Users\TuoNomeUtente\CartellaCheVuoi")
os.system('start vlc "file.mp4"')


se qualcuno ha da consigliarmi qualche video / corso o meglio di tutto libri sarebbe fantastico!
Su Github trovi numerosi libri gratuiti sia in inglese che in italiano. Personalmente non li ho mai usati, quindi non so quanto possano essere validi.
 
  • Mi piace
Reazioni: Shini_x93 e Mursey

Shini_x93

Nuovo Utente
55
5
CPU
intel i5 6400 skylake
Scheda Madre
Asus h170 pro4s
RAM
2x 4GB HyperX Fury DDR4
GPU
Zotac gtx 970
Grazie! se imposto la dir sul desktop poi tasto destro sull'applicazione che voglio aprire poi scheda "collegamenti:" e copio l'indirizzo "da" e lo metto in subprocess.run l'app parte correttamente, ti ringrazio per il materiale linkato ma è lo stesso della discussione che ho menzionato prima, non mi dispiacerebbe avere un libro cartaceo fatto bene però mi piacerebbe avere un feedback da qualcuno che lo possiede
 
  • Mi piace
Reazioni: Edmund Blackadder

pabloski

Utente Èlite
2,868
916
Ma stai cercando di eseguire file word, .lnk e altre cose così? Il run del modulo subprocess, esegue gli eseguibili ( EXE ). Se vuoi aprire un file con word, devi eseguire word.exe e passargli il nome del file word come parametro.
 
  • Mi piace
Reazioni: Mursey

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!