これが可能かどうかはわかりません。Pythonスクリプトのセットがあり、〜/ .bashrcのLinuxPATHを変更して、ターミナルを開くたびにPythonスクリプトをコマンドとして実行できるようにしました。
export PATH=$PATH:/home/user/pythonlib/
my_command.pyは上記のパスにあります。
ターミナルのどこからでもmy_command.py(args)を実行でき、Pythonスクリプトが実行されます。
これが私の処理ルーチンを自動化するための最も速い解決策になるので、私はこの機能を別のpythonスクリプトから制御したいと思います。したがって、ターミナルを開いて、作業中のPythonスクリプト内からmy_command.py(args)を実行するために必要です。
私はサブプロセスを試しました:
import subprocess
test = subprocess.Popen(["my_command.py"], stdout=subprocess.PIPE)
output = test.communicate()[0]
my_command.pyは通常、起動したすべての端末で使用できますが、ここではアクセスできず、ファイルが見つかりません。
osを使用して新しいターミナルを起動し、my_command.pyと入力すると、機能します
os.system("x-terminal-emulator -e /bin/bash")
それで、argsを使用してPythonから実行するスクリプトを受け入れる2番目のメソッドを取得する方法はありますか?
Ubuntu 16
ありがとう:)
Popenは、Pythonスクリプトで作成したセッションのシステムPATHをロードしません。次のように、プロジェクトにディレクトリを含めるように、セッションのPATHを変更する必要があります。
someterminalcommand = "my_command.py (args)"
my_env = os.environ.copy()
my_env["PATH"] = "/home/usr/mypythonlib/:" + my_env["PATH"]
combine = subprocess.Popen(shlex.split(someterminalcommand), env=my_env)
combine.wait()
これにより、ターミナルウィンドウを開いたときと同じように、別のPythonセッションから「my_command.py」ファイルを実行できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加