#python #python-3.x #pycharm
#python #python-3.x #pycharm
Вопрос:
Я использую Pycharm (2019.1.2 x64) довольно давно, и я никогда не менял стандартные настройки. Стандартные настройки отображают ключевые слова ( def
, class
, if
) оранжевым цветом, нажатие tab автоматически завершает ключевое слово и добавляет пробел, встроенные функции ( sum()
, map()
, print()
) отображаются фиолетовым цветом, а нажатие tab автоматически завершает имя функции, добавляет скобки и перемещает курсор внутри скобок.
Это желаемое поведение, и это то, что я получаю при открытии любого проекта в Pycharm, кроме одного.
В одном проекте это поведение внезапно изменилось, я ничего не делал, кроме написания и запуска кода. Я заметил, что из-за того, что tab внезапно начал отступать на 8 пробелов вместо 4, ничего страшного, я изменил его обратно на 4 в нижней части IDE, но я также заметил, что print
это рассматривается как ключевое слово (оранжевое без скобок), а не как встроенная функция, как в Python2 (Я никогда не использовал его, и интерпретатором проекта был Python 3.7). from __future__ import print_function
снова превратится print
в функцию, но это материал Python2.
Я исправил это, создав новую виртуальную среду и снова настроив интерпретатор, поэтому мой вопрос: что вызывает это неожиданное поведение?
Я хотел бы избежать этого при работе над моими самыми «серьезными» проектами. Спасибо всем.
Комментарии:
1. Похоже на ошибку. Однако трудно ответить на этот вопрос без какой-либо информации о том, что вы на самом деле сделали непосредственно перед его изменением. Вы изменили конфигурацию запуска? Вы создали новый файл? Вы запустили приложение? Вы изменили какие-либо переменные среды?
2. Нет, этот проект — всего лишь несколько файлов на python, в которых я пишу решения проблем с таких сайтов, как hackerank или codility, так что это ванильный Python. Все, что я делаю, это пишу строки и запускаю их с помощью кнопки с зеленой стрелкой.
Ответ №1:
НОВЫЙ ОТВЕТ
Ну, это случилось со мной только вчера, когда я работал над своим проектом tkinter. Он показал tkinter в from tkinter import *
«Модуле, не поддерживаемом в Python 2.7», хотя я использовал Python 3.8.
Решение первое
Чтобы исправить эту проблему, я просто перешел к
File > Settings > Appearance and Behavior > System Settings > Updates
И обновил PyCharm до последней версии. У меня это сработало.
Решение второе
Другой метод, который я обнаружил, — перейти к
Press Shift Key Twice > Typing "Restore Default Settings"
Выполнение этого также частично восстановит все настройки и решит проблему для меня.
Почему это произошло?
Это связано с ошибкой в более старых версиях PyCharm (вероятно). Я получил эту ошибку при тестировании некоторого API Google, который был в Python 2.7. Если вы когда-либо открывали проект, содержащий интерпретатор Python 2.7, и открывали другой проект на Python 3 и выше, PyCharm считает, что написанный код написан на Python 2.7, и просто форматирует руководство в соответствии с ним. Некоторым примером может быть "f" in print(f"{some_variable_here}") being shown as "Not Supported In Python 2.7".
, что это всего лишь моя теория, возможно, я здесь совершенно не прав.
СТАРЫЙ ОТВЕТ
Используете ли вы macOS? если да, macOS поставляется с предустановленным Python 2. Так что, вероятно, это может быть ошибкой. Я предлагаю перейти в правый нижний угол, и там будет написано «Python (версия)». Если это что-то другое, чем 3 или выше (например, 2), щелкните по нему и перейдите в «Настройки интерпретатора» и там, в выпадающем меню, выберите другой интерпретатор Python, который установлен на вашем устройстве.
Если это не работает, то это может быть ошибка темы или что-то связанное с самим PyCharm (вероятно). Вероятно, переустановка и очистка кэша должны сработать.
Комментарии:
1. Нет, я не на Mac и у меня не установлен Python 2, код по-прежнему выполняется как Python 3, но Pycharm видит его как Python2, я решил это, думаю, я сообщу об этом как об ошибке в jetbrains
2. Извините, мне потребовалось некоторое время, чтобы ответить, но я сам застрял в поиске решений.