web-dev-qa-db-ja.com

別のスクリプトからのpythonファイルの実行

main.pyというファイルがあり、次のコードがあります。

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)

ただし、python3 main.pyを使用してシェルから実行しようとすると、次のエラーが表示されます。

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.pymain.pyは、どちらも/home/username/Documents/py-script/の下の同じディレクトリにあります。

system('file.py')を下の行に変更しましたが、file.pyを実行できません。

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

このプログラムはWindowsで正常に動作しますが、Ubuntuデスクトップ(VMではなく)で動作させるために追加の手順を実行する必要がありますか?両方のファイルにも744を割り当てました。

3
Leb

「file.py」にShebang行(#!インタープリター)を追加する必要があります

#!/usr/bin/pythonまたは#!/usr/bin/env python-これは、Pythonを使用してファイルを実行するよう指示します。また、ファイルに実行するための十分な権限があることを確認してください。

または

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