gedit插件错误 - 插件加载器'python3'未找到

8
我尝试在Ubuntu 14.04LTS上的gedit 3.10.4中添加一些插件,但当我尝试在gedit中激活这些插件时出现了一些错误:

(gedit:20686): libpeas-WARNING **: 初始化Python插件加载器时出错:PyGObject初始化失败 ImportError: could not import gobject (error was: ImportError("No module named 'gi'",))

(gedit:20686): libpeas-WARNING **: 请检查libpeas所需的所有Python相关软件包的安装情况,并重试

(gedit:20686): libpeas-WARNING **: 加载器“python3”不是有效的PeasPluginLoader实例

(gedit:20686): libpeas-WARNING **: 找不到插件“bracketcompletion”的加载器“python3”

我发现在gedit上:

找不到插件加载器“python3”

有人有想法这个问题从哪里来吗?

4个回答

4

我曾在使用不同的插件(reST)时遇到了相同的错误。造成错误的原因是当一个虚拟环境处于活动状态时,我从命令行运行了它。因此Python3没有使用(和找到)系统库。

解决方法:我正常地从GUI中运行gedit(或在终端中停用虚拟环境后)并成功加载了编辑器和插件。请再次确认您是否有类似的问题。

否则,您可能确实需要检查错误消息指出的问题:是否安装了由libpeas所需的所有“相关软件包”。有关包含详细信息的软件包,请参阅Trusty版本的libpeas-1.0-0


3
补充@Railslide的回答:
  1. In your /usr/lib/gedit/plugin search for your plugin file (e.g. bracketcompletion.plugin) and change Loader=python3 to Loader=python

  2. If this still returns an error - likely because it doesn't match python3 syntax: Use the command 2to3 as follows:

    cd python_directory/
    sudo 2to3 -f all -w *
    
例如,对于gedit-latex-plugin插件...
cd /usr/lib/gedit/plugins/
sudo sed -i 's/python/python3/g' latex.plugin # only if you haven't already replaced python->python3
cd latex/
sudo 2to3 -f all -w *

通过替换python2.x代码为python3代码,这可以修复该插件问题。

相关信息


如何撤销此命令sudo 2to3 -f all -w *?因为执行此命令后,其他应用程序如anaconda无法正常工作。 - Kedar Kodgire
有人能帮我吗?谢谢。 - Kedar Kodgire
我只能假设你没有在 latex/ 目录中完成它,而是在 lib/ 目录中完成的。如果你确实这样做了,那么这是一个非常严重的错误,你需要重新安装所有损坏的库或从备份中恢复。 - Alexander McFarlane

0

3
谢谢您的回复,但它并没有改变任何内容......现在的错误是“找不到插件加载程序'python'”。 - Julien LM

0

今天我遇到了基本上相同的问题,不过是与代码注释插件有关。在我的情况下,只有在从命令行执行gedit时才会出现问题,类似于@Peterino(尽管实际上没有明确设置虚拟环境)。否则一切正常。

发生这种情况的原因似乎与我在.bashrc中设置了我的$PATH有关,以使python3对应于本地anaconda/miniconda安装。一个不希望的副作用是,当从终端启动时,gedit实际上选择了本地miniconda安装而不是/usr/bin/python3.X。(通过将miniconda文件夹暂时移动到其他位置或登录为另一个用户进行检查)。

可能的解决方法

(虽然我仍然对它们中的任何一个都不完全满意)。

将以下内容放入.bashrc中即可解决:

export CONDAPATH=$HOME/miniconda3/bin
export PATH="$CONDAPATH:$PATH"
# ^ put these two lines instead of the original miniconda export.

# __ : naming convention for private functions
__geditfix() {
    export PATH=$(echo $PATH | sed -E "s|:$CONDAPATH\|$CONDAPATH:||g"); # remove conda from the PATH environment variable, using RegEx
    gedit "$@"; # call gedit, giving it all arguments
    export PATH="$CONDAPATH:$PATH"; # add conda to the PATH environment variable
} # Using a function rather than an alias, so that the filename is given to gedit, as it should and not to setconda().

alias gedit='__geditfix' # So that we can run our fix simply via: gedit <arguments>.

这个^做的是创建一个别名为gedit,使用一个函数来实际执行以下操作:

  • 1)从$PATH中删除~/miniconda3/bin,
  • 2)运行gedit(/usr/bin/gedit),使其获取所有参数,
  • 3)把~/miniconda3/bin放回到我们的$PATH中。

有了这几行代码在.bashrc中,就可以简单地调用gedit并带上

  • 插件将工作,因为gedit将从/usr/bin/中选择python,
  • python,jupyter-notebook,conda和miniconda之类的仍然可以直接访问而没有问题

顺便说一句,这有所帮助:https://dev59.com/i3RB5IYBdhLWcg3wkH9N#23134318(sed中的环境变量替换)

备选方案:安装此v:

conda install -c conda-forge pygobject

从终端输出可以猜测,在使用miniconda python3安装时缺少了它。


截至今天,我最喜欢的解决方案是使用虚拟环境,只有在特定终端中明确想要使用Python或Jupyter时才激活它。我选择了venv,请参见https://docs.python.org/3/library/venv.html#creating-virtual-environments您可以通过以下方式创建新环境(仅需执行一次):python3 -m venv /yourpath/to/new/virtual/environment然后要激活它,只需执行: source /yourpath/to/new/virtual/environment/bin/activate要停用它,只需键入“deactivate”。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接