Я пытаюсь понять, как выбрать и запустить файл python через систему Ubuntu Windows. Я никогда в жизни не запускал скрипты, и я новичок в этом деле.. Поэтому я пошел на YouTube, потому что чувствовал, что это не должно быть сложным, но...
Используя скрипт (и инструкции), описанные здесь: Создание, сохранение и запуск программы Python через терминал Ubuntu
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
Еще кое-что: я также попробовал выбрать свойства файла правой кнопкой мыши и установил флажок, позволяющий выполнить его... все равно ничего...
Кто-нибудь знает, почему терминал Ubuntu не запускает программы Python??? Может быть, есть терминал, который будет запускать что-то подобное???
решение1
В Windows типы файлов определяются по последним 3 символам после . Однако в Linux (и Ubuntu) .py просто помогает нам, людям, понять, какой это тип файла. Вам нужно сообщить Ubuntu, что написанный вами скрипт — это скрипт Python, и его следует запустить с помощью интерпретатора Python. Это можно сделать двумя способами:
Первыйвы можете вызвать, python
а затем указать имя скрипта. То есть открыть терминал и ввести:
python hellowworld.py
Это сработает.
Второй,Однако вы хотите использовать GUI и запустить его двойным щелчком. Для этого вам нужна строка в скрипте, которая сообщает Ubuntu, что следующие строки должны интерпретироваться как скрипт python. Эта первая строка называетсяшабангстрока. Для python это выглядит так:
#! /usr/bin/python
Обратите внимание на #!
в начале. Первые два символа вашего скрипта должны быть теми двумя, за которыми следует остальная часть строки. Таким образом, ваш скрипт будет выглядеть так:
#! /usr/bin/python
print"hello world"
vary = raw_input("Enter your Name")
print ("hey " + vary)
Как вы заметили, скрипт должен быть помечен как исполняемый. Для этого щелкните правой кнопкой мыши по значку скрипта и перейдите вСвойства>Разрешенияи проверьтеРазрешить выполнение файла как программы.
Теперь, если дважды щелкнуть по скрипту, откроется окно с вариантами выбора:
Run in terminal
, Display
, Cancel
,Run
Вы можете попробовать Run in terminal
. Откроется терминал и появится приглашение:
Enter 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
Привет, мир
Введите свое имя, пожалуйста: Дэйв
Трассировка (последний вызов последний):
Файл "rev.py", строка 2, в
vary = input("Enter your Name Please: ")
Файл "", строка 1, в
NameError: имя «Дэйв» не определено
lucky1@babyCatsDesktop:~/shiite/livescript$
Но на терминале python он работает отлично? Я не силен в этом деле, и мне кажется, что я нахожу самые уникальные, но в то же время общие проблемы там..
решение4
В Python 2 (который вы, вероятно, используете) input()
и raw_input()
не совпадают. Ваш скрипт использует input()
, в отличие от примера.
input()
принимает ваши входные данные и пытается их оценить. Поскольку в вашем пространстве имен нет объекта с именем "Dave", Python не знает, что делать. raw_input()
однако преобразует ваши входные данные в строку, это следует использовать почти во всех случаях.
Примечание: В Python 3 raw_input()
переименован в input()
.
Вы думаете, что ничего не происходит, потому что выдается ошибка и скрипт завершается. Это также причина, по которой вы всегда должны запускать скрипты из терминала, чтобы вы могли видеть сообщения об ошибках или общую отладочную информацию, которая выводится.
Итак, измените используемый вами скрипт raw_input()
и запускайте его из терминала, пока не устраните все ошибки, а затем попробуйте дважды щелкнуть по нему.