Как правильно настроить использование python 3, чтобы избежать NameError: name '' не определено - PullRequest
0 голосов
/ 20 июня 2020

Я пробовал очень простой код на моем MacBook: вот код

def file_name(fname):
    try:
        fhand = open(fname)
    except:
        print('File cannot be opened: ', fname)
        quit()
    count = 0
    starts_with = **input**('Entries starts with: ')
    for line in fhand:
        if line.startswith(starts_with):
            count = count + 1
print('There were ', count, ' subject lines in', fname)

fname = input ('Введите имя файла:') file_name (fname)

Чтобы этот код работал, мне пришлось заменить input() на raw_input(). Я установил python 3.8 на свое устройство, но не могу запустить с ним код. Сначала я подумал, что проблема в коде VS. После перехода на PyCharm professional у меня все еще осталась та же проблема.

Желаемый результат после переименования в raw_input():

Hou-Pengs-MBP:PY4E houpengzhu$ python File.py
Enter the file name: hw.py
Entries starts with: print 
('There were ', 1, ' subject lines in', 'hw.py')

Вывод при использовании input()

Hou-Pengs-MBP:PY4E houpengzhu$ python File.py
Enter the file name: hw.py
Traceback (most recent call last):
  File "File.py", line 15, in <module>
    fname = input('Enter the file name: ')
  File "<string>", line 1, in <module>
NameError: name 'hw' is not defined

Моя конфигурация для PyCharm:

PyCharm, щелкните, чтобы просмотреть снимок экрана

для кода VS:

Код VS, щелкните, чтобы просмотреть снимок экрана

Что мне делать, чтобы получить желаемый результат?

ОБНОВЛЕНИЕ : Я покопался и обнаружил, что это решение от Ryosuke Hujisawa (второй ответ, за который проголосовали) сработало для меня: как изменить версию python по умолчанию? Теперь моя версия по умолчанию python было изменено на python 3. При запуске этого кода вам все равно нужно указать, что вы хотите python3 в IDE, но для этого вам больше не потребуется использовать raw_input () из python 2 для кода. на работу.

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Ваша IDE не контролирует сеанс вашего терминала. python -V покажет вам, в чем проблема, или, точнее, версия, с которой вы выполняете сценарий, с помощью

Вы должны попробовать запустить /usr/bin/python3 hw.py, например, для python 3.7.3 или с /usr/local/bin/python3 для 3.8.3

Или вам нужно активировать Venv, тогда вы можете просто использовать python

0 голосов
/ 20 июня 2020

Вы уверены, что используете его на python 3. В python 3 нет raw_input() Он должен работать с input (), если вы используете python3 File.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...