Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pycharm中带有内省绑定的代码完成_Python_Pycharm_Gtk3_Pygobject - Fatal编程技术网

Python pycharm中带有内省绑定的代码完成

Python pycharm中带有内省绑定的代码完成,python,pycharm,gtk3,pygobject,Python,Pycharm,Gtk3,Pygobject,我正在学习python+gtk3+,所以我正在寻找一个IDE来帮助我。有没有办法用PyGObject完成代码?我真的尝试了我能想到的一切。 我有pycharm build 138.2401,其中的bug:应该已经修复,但我无法得到任何代码建议。 此简单代码将发出警告(未找到Gtk): 此外,使用fakegir也不起作用(而且它可以与WingIDE一起使用)。以下是我的项目启动脚本,以防我做错了(可怕的)事情: 使用,我在页面底部测试了解决方案,猜猜看,它成功了!它从Pycharm中获取了一些索引

我正在学习python+gtk3+,所以我正在寻找一个IDE来帮助我。有没有办法用PyGObject完成代码?我真的尝试了我能想到的一切。 我有pycharm build 138.2401,其中的bug:应该已经修复,但我无法得到任何代码建议。 此简单代码将发出警告(未找到Gtk):

此外,使用fakegir也不起作用(而且它可以与WingIDE一起使用)。以下是我的项目启动脚本,以防我做错了(可怕的)事情:

使用,我在页面底部测试了解决方案,猜猜看,它成功了!它从Pycharm中获取了一些索引,但现在一切都自动完成了

只要写下:

from gi.repository import Gtk

然后按alt+enter,并选择“为二进制模块生成存根”

2020修复

我会在这里发布一个对我有用的补丁,它可能会帮助别人

pycharm版本:2020.1社区

os:Manjaro kde

项目解释器:python 3.8系统范围的“非虚拟环境”

Gtk完成仅从pycharm终端工作,但不从编辑器区域工作

建议的解决方案是将鼠标指针放在Gtk关键字上,然后按alt+enter,但根本不起作用,因为它没有显示“为二进制模块生成存根”选项

解决方案步骤:

  • idea.properties
    文件中的此行更改为
    idea.max.content.load.filesize=20000
    ,在可能的情况下,我使用了
    sudo nano/usr/share/pycharm/bin/idea.property
    来编辑此文件,您的文件可能位于不同的位置,请使用locate或find cmd来查找
  • 从pycharm为当前项目创建垂直环境
  • 安装Gtk:按照官方网站中的确切步骤操作,否则它将失败,您可能需要在venv中安装软件包“wheel”
  • 成功完成安装后,单击gi.repository import Gtk中的Gtk,然后按alt+enter,并选择“为二进制模块生成存根”
  • 等等。。。。。。。。。。直到完成
  • pycharm将抱怨Gtk没有类型提示,并提供给 安装“PyGobject存根”不要安装它,因为它会导致 问题
  • 毕竟做了。。。重新启动Pycharm
  • Pycharm将开始,但索引和最终所有工作将需要更多的时间

  • 项目启动脚本与此无关,我认为pycharm不会查看您的
    sys.path
    代码。这就引出了另一个问题:如何在pycharm中向PYTHONPATH添加文件夹?谢谢。它位于
    设置
    项目结构
    内容根目录
    。好吧,这让我完成了代码,但现在项目不是从pycharm运行的,而是在terminal:/。我认为这与(fakegir自述)有关:“默认情况下,包保存在~/.cache/fakegir/中。这是您要添加到Python路径的目录。当然,您不应该将此包放在全局PYTHONPATH中,否则PyGObject应用程序将立即停止工作;”
    import sys; print('Python %s on %s' % (sys.version, sys.platform))
    sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
    sys.path.append(self,"/home/obok/.cache/fakegir/")
    
    from gi.repository import Gtk