在Pycharm中将Print[Python]视为关键字

在Pycharm中将Print[Python]视为关键字,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个空格,

我使用Pycharm(2019.1.2 x64)已经有一段时间了,我从未更改过标准设置。 标准设置以橙色显示关键字(
def
class
if
),按tab键将自动完成关键字并添加空格,内置函数(
sum()
map()
print()
)以紫色显示,按tab键将自动完成函数名,添加括号并在括号内移动光标

这是我想要的行为,也是我在Pycharm中打开任何项目时得到的,除了一个

在一个项目中,这种行为突然改变了,我除了编写和运行代码外什么也没做。 我注意到,因为tab突然开始缩进8个空格而不是4个空格,所以没什么大不了的,我在IDE的底部将它改回了4个,但我还注意到,
print
被视为一个关键字(没有括号的橙色),而不是一个内置函数,就像Python2一样(我从未使用过它,项目的解释器是Python3.7)
from\uuuu future\uuuu导入print\u函数
会将
print
再次变成一个函数,但它是Python2的东西

我通过创建一个新的虚拟环境并再次设置解释器来修复它,所以我的问题是: 是什么导致了这种意外行为


我希望在处理最“严肃”的项目时避免这种情况。谢谢大家。

新答案

就在昨天,当我在做tkinter项目时,这件事发生在我身上。它在tkinter import*中的
中显示了tkinter“Python 2.7中不支持的模块”,尽管我使用的是Python 3.8

解决方案一

为了解决这个问题,我只需访问

File > Settings > Appearance and Behavior > System Settings > Updates
并将PyCharm更新为最新版本。这对我有用

解决方案二

我发现的另一个方法是去

Press Shift Key Twice > Typing "Restore Default Settings"
这样做还将部分恢复所有设置,并为我修复问题

为什么会发生这种情况?

这是由于PyCharm的旧版本中有一个bug(可能是)。我在测试Python 2.7中的一些Google API时遇到了这个错误。如果您打开了一个包含Python2.7解释器的项目,并打开了另一个Python3及更高版本的项目,PyCharm认为编写的代码是用Python2.7编写的,只是根据它格式化指南。一些例子可以是打印的“f”(f“{Some_variable_here}”)显示为“在Python 2.7中不受支持”。
这只是我的理论,我可能在这里完全错了

旧答案

你在用macOS吗?如果是,macOS预装了Python 2。所以这可能是一个bug。我建议在右下角写上“Python(版本)”。如果它不是3或更高版本(如2),请单击它,然后转到“解释器设置”,然后从下拉菜单中选择设备上安装的其他Python解释器


如果这不起作用,那么它可能是一个主题bug,或者与PyCharm本身有关(可能)。重新安装和清除缓存可能会起作用。

似乎是个bug。然而,如果没有任何关于你在它改变之前实际做了什么的信息,很难回答这个问题。您是否更改了运行配置?你创建了一个新文件吗?你开始申请了吗?您是否更改了任何环境变量?没有,这个项目只是一些python文件,我在这些文件中为hackerank或Codibility等网站的问题编写了解决方案,所以它是普通python。我所做的就是写行并用绿色箭头按钮运行它们。不,我不在Mac上,也没有安装Python 2,代码仍然以Python 3的形式执行,但Pycharm将其视为Python2,我已经解决了,我想我会将其作为一个bug报告给JetBrainsorry。我花了一些时间才回答,但我自己一直在寻找解决方案。