web-dev-qa-db-fra.com

Exécution du fichier python à partir d'un autre script

J'ai un fichier appelé main.py et a le code suivant:

from os import system
from time import sleep
from datetime import datetime

while True:
    print(datetime.now(),"-+- Starting")
    system('file.py')
    print(datetime.now(),"-+- Crash")
    sleep(300)

Cependant, si j'essaie de l'exécuter à partir du shell à l'aide de python3 main.py, l'erreur suivante apparaît:

sh: 1: file.py: not found
^CTraceback (most recent call last):
  File "main.py", line 14, in <module>
    sleep(300)  # sleep for 5 minutes

file.py ainsi que main.py se trouvent tous deux dans le même répertoire sous /home/username/Documents/py-script/.

J'ai même remplacé system('file.py') par la ligne ci-dessous mais je ne parviens toujours pas à exécuter file.py.

system('/home/username/Documents/py-script/file.py')

Le programme fonctionne correctement sous Windows. Y a-t-il des étapes supplémentaires à suivre pour le faire fonctionner sur mon bureau Ubuntu (et non sur une machine virtuelle). J'ai également assigné 744 aux deux fichiers.

3
Leb

Vous devez ajouter la ligne Shebang (#! Interpreter) à 'file.py'

#!/usr/bin/python ou #!/usr/bin/env python- Cela vous demandera d'exécuter le fichier en utilisant python. Assurez-vous également que le fichier dispose de suffisamment d'autorisations pour s'exécuter.

ou

vous devriez appeler le programme avec le préfixe python

from os import system
from time import sleep
from datetime import datetime

while True:
    print(datetime.now(),"-+- Starting")
    system('python file.py')
    print(datetime.now(),"-+- Crash")
    sleep(300)
3
devav2