簡體   English   中英

gedit插件錯誤 - 找不到插件加載器'python3'

[英]gedit plugin error - plugin loader 'python3' was not found

我嘗試在ubuntu 14.04LTS上的gedit 3.10.4中添加一些插件,當我嘗試在gedit中激活這些插件時發生了一些錯誤:

(gedit:20686):libpeas-WARNING **:初始化Python插件加載器時出錯:PyGObject初始化失敗ImportError:無法導入gobject(錯誤是:ImportError(“沒有名為'gi'的模塊”,))

(gedit:20686):libpeas-WARNING **:請檢查libpeas所需的所有Python相關軟件包的安裝,然后重試

(gedit:20686):libpeas-WARNING **:Loader'python3'不是有效的PeasPluginLoader實例

(gedit:20686):libpeas-WARNING **:無法為插件'bracketcompletion'找到加載程序'python3'

我看到了,在ged

找不到插件加載程序'python3'

有沒有人知道問題可能來自哪里?

我使用不同的插件( reST )遇到了同樣的錯誤。 錯誤導致的問題是我在虛擬環境 處於活動狀態 從命令行運行它。 出於這個原因,Python3沒有使用(並找到)系統庫。

解決方案:我通常從GUI運行gedit(或者在終端中停用virtualenv之后),編輯器和插件只是加載正常。 仔細檢查您是否有類似的原因。

否則,您可能真的必須檢查錯誤消息的內容:是否安裝了所有“ libpeas所需的相關軟件包 ”。 查看Trusty的軟件包libpeas-1.0-0的詳細信息。

要添加@Railslide的答案:

  1. 在你的/usr/lib/gedit/plugin搜索你的插件文件(例如bracketcompletion.plugin )並將Loader=python3改為Loader=python

  2. 如果這仍然返回錯誤 - 可能是因為它與python3語法不匹配:使用命令2to3 ,如下所示:

     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 *

然后通過用python3代碼替換python2.x代碼來修復插件

有關

這是一個gedit bug,請參閱https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/859089

作為一種解決方法,在你的/usr/lib/gedit/plugin搜索你的插件文件(例如bracketcompletion.plugin )並將Loader=python3改為Loader=python

不幸的是,這種解決方法並不適用於所有插件

今天遇到了基本相同的問題,盡管使用了代碼注釋插件。 在我的情況下,問題只出現在從命令行執行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)在我們的$PATH放回~/miniconda3/bin

使用.bashrc這幾行,可以簡單地調用gedit <arguments>

  • 插件工作,因為gedit將從/usr/bin/選擇python
  • pythonjupyter-notebookconda ,距離miniconda等可仍然沒有問題可以直接訪問

順便說一下,這有幫助: https//stackoverflow.com/a/23134318/452522 (sed中的環境變量替換)

替代解決方案:安裝此v:

conda install -c conda-forge pygobject

正如可以從終端輸出中猜到的那樣,在使用miniconda python3安裝時它會丟失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM