[英]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的答案:
在你的/usr/lib/gedit/plugin
搜索你的插件文件(例如bracketcompletion.plugin
)並將Loader=python3
改為Loader=python
如果這仍然返回錯誤 - 可能是因為它與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創建別名
$PATH
刪除~/miniconda3/bin
, /usr/bin/gedit
),給它所有參數, $PATH
放回~/miniconda3/bin
。 使用.bashrc
這幾行,可以簡單地調用gedit <arguments>
/usr/bin/
選擇python
, python
, jupyter-notebook
, conda
,距離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.