2017-08-10 2 views
0

私はポイントにまっすぐになります。 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の変数を代入する

+0

問題は、installer_pathが変数ではなく文字列として扱われることです。 – Samy

+0

はい、この方法では、インストーラのパスは文字列として扱われますが、bashコマンドまたはbashスクリプトのパスとして扱われる必要があります。 – Woops

+0

私はあなたの説明にはかなり迷っていますので、できるだけ明確にしましょう。次のステートメントは本当ですか? 'installer_pathは、私がサブシェルでBash変数として使用したいPython変数ですが、代わりにBashはその変数を "installer_path"という文字列として扱います。それはここにあるのでしょうか? – Samy

答えて

0

+0

ありがとうございます、ついにこの問題が解決しました。 – Woops

関連する問題