Ubuntu 12.04のグラフィカルインターフェースからPythonスクリプトを実行できますか?

Ubuntu 12.04のグラフィカルインターフェースからPythonスクリプトを実行できますか?

Ubuntu Windows システムで Python ファイルを選択して実行する方法を見つけようとしています。 これまでスクリプトを実行したことがなく、この分野にはまったく不慣れです。 難しいことではないはずだと思い、YouTube を見ましたが...

ここで説明するスクリプト (および手順) を使用します。 Ubuntuターミナル経由でPythonプログラムを作成、保存、実行する

print"hello world"
vary = raw_input("Enter your Name")
print ("hey" + vary)

ファイルをダブルクリックして開こうとしましたが (何度も)、失敗し、入力を求めず、ターミナルを開いて消えてしまいました (シェルを閉じました)。それだけです。しかし、IDLE はそれを完璧に実行できたので、スクリプトではないことはわかっています。VIM を使用してファイルとして作成し、そこから実行すると、次の出力が得られました。

Traceback (most recent call last):
  File "shiite/livescript/rev.py", line 2, in <module>
    vary = input("Enter your Name Bitch:  ")
  File "<string>", line 1, in <module>
NameError: name 'Dave' is not defined

もう 1 つ、右クリックでファイルのプロパティを選択し、実行を許可するボックスをチェックしてみましたが、それでも何も起こりません。

Ubuntu ターミナルで Python プログラムを実行できない理由を知っている人はいますか? このようなものを実行できるターミナルがあるのでしょうか?

答え1

Windows では、ファイルの種類は .py の後の最後の 3 文字で識別されます。ただし、Linux (および Ubuntu) では、.py は、人間がファイルの種類を判断するのに役立つだけです。作成したスクリプトが Python スクリプトであり、Python インタープリターで実行する必要があることを Ubuntu に伝える必要があります。これを行うには、次の 2 つの方法があります。

初めpythonスクリプト名を続けて呼び出すことができます。つまり、ターミナルを開いて次のように入力します。

python hellowworld.py

これはうまくいくでしょう。

2番、しかし、GUIを使用してダブルクリックで実行したいとします。そのためには、次の行がPythonスクリプトとして解釈されることをUbuntuに伝えるスクリプトの行が必要です。この最初の行はシャバン行。Python の場合は次のようになります。

#! /usr/bin/python

先頭の に注意してください#!。スクリプトの最初の 2 文字は、その 2 文字に続いて行の残りの部分が続く必要があります。したがって、スクリプトは次のようになります。

#! /usr/bin/python

print"hello world"
vary = raw_input("Enter your Name")
print ("hey " + vary)

ご指摘のとおり、スクリプトは実行可能としてタグ付けする必要があります。これを行うには、スクリプトのアイコンを右クリックしてプロパティ>権限チェックファイルをプログラムとして実行できるようにする

スクリプトをダブルクリックすると、選択肢のあるウィンドウが表示されます。

Run in terminal、、、DisplayCancelRun

試すことができますRun in terminal。ターミナルが開き、プロンプトが表示されます。

Enter your name

名前を入力すると、スクリプトが完了するとターミナルが閉じます。そのため、「hey [your name]」は目に入らないでしょう。あまりにも速く表示されるため、目に留まりません。スクリプトを変更して、スクリプトが一時停止し、表示を確認した後にユーザーが閉じるまで待機するようにする必要があります。

お役に立てれば

答え2

問題を再現するために、まずシステムに Python がインストールされていることを確認しました。

xaap001@ubuntu:~$ which python
/usr/bin/python
xaap001@ubuntu:~$ python
Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

次に、上で投稿した Python の「hello world」コードを というファイルに保存しましたhelloWorld.py。保存後、このファイルの権限は変更していません。ターミナルから、次の操作を試しました。

xaap001@ubuntu:~$ python helloWorld.py
hello world
Enter your NameAaron
heyAaron

うまくいったようです。ターミナルから、すべての Python スクリプトの前に を付けるだけですpython

編集: この質問/回答で説明されているように、デスクトップ ショートカットを作成して、デスクトップからこれを動作させてみることにしました。新しいデスクトップショートカットを作成するためのデスクトップショートカットは何もしません

「コマンド」を次のように設定しました:python /home/xaap001/helloWorld.py

クリックできるデスクトップ アイコンが表示されました。しかし、何も起こりませんでした。.desktop ファイル (ショートカット) の実際の内容を確認しました。

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=python
Name[en_US]=Python helloWorld
Exec=python /home/xaap001/helloWorld.py
Name=helloWorldPy
Icon=python

設定に気付きTerminal=false、 に変更しましたTerminal=true。その後、アイコンをダブルクリックすると機能しました。

答え3

信じられますか? 正直に言うと、私の Ubuntu にウイルスか何かが感染していると思います。でも、はい、私はあれもこれもやりました。

lucky1@babyCatsDesktop:~/shiite/livescript$ python rev.py

こんにちは世界

名前を入力してください: Dave

トレースバック(最新の呼び出しが最後):

ファイル「rev.py」の2行目、

vary = input("Enter your Name Please:  ")

ファイル ""、行 1、

NameError: 名前 'Dave' は定義されていません

lucky1@babyCatsDesktop:~/shiite/livescript$

それでも Python ターミナルでは完璧に動作しますか? 私はこの手のことは得意ではないのですが、最もユニークでありながら一般的な問題を見つけているようです。

答え4

Python 2 (おそらく使用している) ではinput()、 と はraw_input()同じではありません。スクリプトではinput()、例とは異なり、 を使用します。

input()入力を受け取り、それを評価しようとします。名前空間に「Dave」というオブジェクトがないため、Python は何をすべきかわかりません。raw_input()ただし、入力を文字列に変換するので、ほとんどすべての場合にこれを使用する必要があります。

注記: Python 3 では、raw_input()に名前が変更されましたinput()

エラーがスローされ、スクリプトが終了するため、何も起こらないと思われます。これは、エラー メッセージや一般的なデバッグ情報が出力されるため、スクリプトを常にターミナルから実行する必要がある理由でもあります。

したがって、使用するスクリプトを変更しraw_input()、すべてのバグがなくなるまでターミナルから実行してから、ダブルクリックしてみてください。

関連情報