私はポイントにまっすぐになります。 Linux用のGUIを使用してGTKプログラムを開発しています。ユーザーが特定のボタンをクリックすると、インストールスクリプトを実行する必要があります。新しいウィンドウでインストールスクリプトを実行できません
私が現在開発している端末でアプリケーションを実行すると、オープン端末があり、bashスクリプトを実行できます。私の問題は何
#this works
python main.py
は、アプリケーションは端末が開いていないことを意味し、通常通り、の.desktopファイルを経由して実行される通常のアプリケーション、としてリリースされるということです。
インストールの目的で新しい端末を開いて、インストールスクリプトを実行する方法が見つからず、インストールスクリプトを実行できません。 通常の状況では、bashからあなたはこれを実行することができます。
uxterm -e -hold 'path to script'
が、私はそれとPythonでこの作業を取得することはできません。
string=name.lower().lstrip().replace(" ","")+"_installer.sh"
installer_path=get_app_installer_path(category)+string
:
os.system("uxterm -e -hold 'installer_path')
をINSTALLER_PATHが文字列であるため、
私の要点は、新しい端末を正しく開き、新しい端末からインストールスクリプトを実行するにはどうすればいいですか?
お時間をいただきありがとうございます。
os.system("uxterm -hold -e {0}".format(installer_path))
これはあなたのケースで動作するはずです:あなたはこのようにそれをフォーマットする必要がbashスクリプトにPythonの変数を代入する
問題は、installer_pathが変数ではなく文字列として扱われることです。 – Samy
はい、この方法では、インストーラのパスは文字列として扱われますが、bashコマンドまたはbashスクリプトのパスとして扱われる必要があります。 – Woops
私はあなたの説明にはかなり迷っていますので、できるだけ明確にしましょう。次のステートメントは本当ですか? 'installer_pathは、私がサブシェルでBash変数として使用したいPython変数ですが、代わりにBashはその変数を "installer_path"という文字列として扱います。それはここにあるのでしょうか? – Samy