Pycharm、PyQt5和Python2.7——没有代码完成

Pycharm、PyQt5和Python2.7——没有代码完成,python,pyqt,pycharm,code-completion,pyqt5,Python,Pyqt,Pycharm,Code Completion,Pyqt5,我有: Python2.7(),它工作得非常好 (使用pip安装python-qt5安装) PyCharm 4.04 Professional(最近从3.4.1升级) 一个小型Qt应用程序 经过多次尝试(因为Python2.7没有提供PyQt5二进制文件,只有3.3+)之后,由于预编译的二进制软件包,我使一切都正常工作 Qt现已安装,功能齐全。我的Qt应用程序运行得很好 但是应用程序还没有完成,PyCharm不会为PyQt模块完成代码。它甚至无法识别任何PyQt5子模块(如Qwidgets)

我有:

  • Python2.7(),它工作得非常好
  • (使用pip安装python-qt5安装)
  • PyCharm 4.04 Professional(最近从3.4.1升级)
  • 一个小型
    Qt
    应用程序
经过多次尝试(因为Python2.7没有提供PyQt5二进制文件,只有3.3+)之后,由于预编译的二进制软件包,我使一切都正常工作

Qt现已安装,功能齐全。我的
Qt
应用程序运行得很好

但是应用程序还没有完成,PyCharm不会为PyQt模块完成代码。它甚至无法识别任何PyQt5子模块(如Qwidgets)的存在:尽管它们工作得很好,但我仍然收到红色的“未解析引用”警告

我该如何解决这个问题?我假设这与为二进制
*.pyd
文件生成骨架的固有困难有关。它到底是如何工作的?我可以手动生成代码框架,还是从正确生成的地方导入它们

卸载并重新安装PyCharm没有帮助。也没有重新配置解释器以强制骨架生成器再次运行


在我秃顶之前请帮忙。

您能从项目的外部库中找到PyQt5吗? 如果您通过pip安装它,您应该能够直接看到库。一旦可以引用该库,它将为您完成代码。

我正在使用PyQt4的Windows上的PyCharm4(社区编辑),自动完成就可以了。由于PyQt4实际上是一个动态库,由python解释器动态加载(您可以查看PyQt4文件夹,那里没有python文件,只有一些init.py),因此自动完成取决于PyQt4本身的源代码,因此在使用pycharm时,通常需要一些本地python缓存来完成。对于我的机器,一个典型的文件如下所示: C:\Users\cui.PyCharm40\system\python\u stubs-762174762\PyQt4\QtCore\QString.py

您还可以尝试从Pycharm安装PyQt文档。
文件->设置->工具->python外部文档->PyQt

在PyCharm 2017.1.1中存在相同的问题。不要这样做

import PyQt5.QtWidgets


是的,我能。PyQt4和PyQt5都安装在“C:\Anaconda\Lib\site软件包”中,可从PyCharm查看。有趣的是:我原以为它会“起作用”,但事实并非如此。在这些文件夹中也有一堆标记为*.dll和*.pyd的Qt。但是PyCharm的autocomplete无法识别它们。它们不使用setup.py文件,也不托管在Pypi.org上。你必须从RiverbankComputing安装二进制软件包(包括Qt5 DLL文件)。你也可以直接联系JetBrains:好主意——我刚刚发布了一个支持请求。StackOverflow往往速度更快,而且通常和官方频道一样有用。这对我在Windowsx64上确实有效。我也很专业。“Qt现在已安装且功能齐全。”所以您已经从命令行对其进行了测试?我已经通过Anaconda(conda install pyqt==5.6.0)为python2.7安装了pyqt5。我也遇到了同样的问题,但pycharm的简单重启解决了这个问题。如果这不起作用,“文件->使缓存无效/重新启动”可能会继续!我在python_存根中有一个PyQt5文件夹,但其中只有两个文件:init.py和Qt.py。“from PyQt5 import Qt”不会抛出未解析的引用警告,因此,如果我用所有PyQt5存根填充此文件夹,自动完成可能会起作用?你有可以在pastebin上扔掉的PyQt5骨架的正常安装吗?我不确定是否有其他与你和我的电脑不同的设置,对于我的电脑,如果我删除了完成文件夹“/Users/mac/Library/Caches/PyCharm40/python_stubs/348993582/PyQt4”,然后重新启动PyCharm,打开一个新文件夹,创建一个python文件,然后,如果我只键入“from PyQt4.QtCore import QString”,那么Pycham将尝试为所有库创建索引(这可能需要一段时间),完成后,PyQt4的所有.py文件将自动下载到python_stubs文件夹。几乎成功。我的PyQt5骨架文件夹位于“D:\Users\mmerifield\.PyCharm40\system\python\u stubs \-946255732\PyQt5”中。当我删除它并重新启动pycharm时,它构建了一个不完整的骨架。唯一可用的文件是“init.py”和“Qt”。不管它值多少钱(在我的例子中很少),PyQt4骨架生成得很好。所以PyQt4现在可以工作了,但PyQt5不能。知道为什么吗?我还没有使用PyQt5,所以我不知道为什么它对PyQt5不起作用。但是正如在pycharm设置中所注意到的,有文件-》设置-》python外部文档,只有pyQt4文档存在,那么尝试添加一个类似的PyQt5文档url并重新启动pycharm怎么样,看到了吗
from PyQt5 import QtWidgets