Ошибка плагина gedit - не найден загрузчик плагина 'python3'
Я попытался добавить некоторые плагины в gedit 3.10.4 на ubuntu 14.04LTS, и при попытке активировать эти плагины в gedit произошли некоторые ошибки:
(gedit:20686): libpeas-WARNING **: Ошибка при инициализации загрузчика плагинов Python: сбой при инициализации PyGObject ImportError: не удалось импортировать gobject (ошибка была: ImportError("Нет модуля с именем" gi "",))
(gedit:20686): libpeas-WARNING **: Пожалуйста, проверьте установку всех пакетов, связанных с Python, необходимых для libpeas, и попробуйте снова
(gedit:20686): libpeas-WARNING **: загрузчик 'python3' не является допустимым экземпляром PeasPluginLoader
(gedit:20686): libpeas-WARNING **: Не удалось найти загрузчик "python3" для плагина "скобка-завершение"
И я вижу, на GED
загрузчик плагина 'python3' не найден
У кого-нибудь есть идея, откуда может возникнуть проблема?
3 ответа
У меня была та же самая ошибка с другим плагином ( reST). Проблема, из-за которой возникла ошибка, заключалась в том, что я запускал ее из командной строки, когда была активна виртуальная среда. По этой причине Python3 не использовал (и не находил) системные библиотеки.
Решение: я обычно запускал gedit из GUI (или после деактивации virtualenv в Терминале), и редактор и плагин просто загрузились нормально. Дважды проверьте, если у вас есть аналогичная причина.
В противном случае вам, вероятно, действительно нужно проверить, что говорит сообщение об ошибке: установлены ли все "связанные пакеты, требуемые libpeas". Смотрите подробности пакета libpeas-1.0-0 для Trusty.
Чтобы добавить ответ @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 *
Затем это исправляет плагин, заменяя python2.x
код с python3
код
связанные с
Это ошибка gedit, см. https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/859089
Как обходной путь, в вашем /usr/lib/gedit/plugin
поиск файла вашего плагина (например, bracketcompletion.plugin
) и изменить Loader=python3
в Loader=python
К сожалению, этот обходной путь не работает для всех плагинов.
Сегодня я столкнулся с той же проблемой, хотя и с плагином code-comment. В моем случае проблема обнаруживалась только при запуске gedit из командной строки, аналогично @Peterino (хотя виртуальная среда фактически не была явно настроена). В остальном все было хорошо.
Причина, по которой это произошло, похоже, связана с тем, что я настроил $PATH
в .bashrc
таким образом, что python3
соответствует местной установке анаконды/миниконды. Нежелательный побочный эффект заключается в том, что при запуске из терминала 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) удаляет
~/miniconda3/bin
от$PATH
, - 2) работает гедит (
/usr/bin/gedit
), приводя все аргументы, - 3) откладывает
~/miniconda3/bin
в нашем$PATH
,
С этими несколькими строчками в .bashrc
можно просто позвонить gedit <arguments>
- плагины работают, так как Gedit будет выбирать
python
от/usr/bin/
, python
,jupyter-notebook
,conda
и тому подобное из Miniconda все еще можно получить прямой доступ без проблем
Кстати, это помогло: /questions/3962110/podstanovka-peremennoj-sredyi-v-sed/3962133#3962133 (подстановка переменных среды в sed)
Альтернативное решение: установите это v:
conda install -c conda-forge pygobject
Как можно догадаться по выводам терминала, этого не хватало при использовании установки miniconda python3.