Я обновился с Ubuntu 12.10 до 13.10. Тем временем я удалил дистрибутив Enthought Python вручную, потому что хочу вернуться к «официальным» пакетам. Поэтому я удалил папку python и перенаправил pythonpath к официальному пакету. Вот дамп PYTHONPATH:
$ echo $PYTHONPATH
/usr/local/Madagascar_1.5/lib/python2.7/dist-packages:/usr/lib/python2.7:/usr/local/lib/python2.7:/usr/local/Madagascar_1.5/lib/python2.7:/usr/local/Madagascar_1.5/lib/python2.7/dist-packages:/usr/local/Madagascar_1.5/lib:/usr/lib/python3
Что теоретически вам нужно, чтобы все работало. Я пишу с Python 2.7, и все работает отлично.
Однако, чтобы запустить gedit, мне нужно экспортировать
PYTHONPATH=/usr/lib/python3
, тогда как он уже находится в pythonpath. Поскольку Gedit сейчас зависит от python 3. Я следовал этому решению, но для меня оно неудовлетворительно:
https://askubuntu.com/questions/363291/multiple-versions-of-python
Когда Я обновляю свои пакеты с помощью aptitude, я получаю сообщение об ошибке, что у gedit есть несоответствия. Так что общий совет - переустановить gedit. Вот вывод:
sudo apt-get --reinstall install gedit
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
Need to get 0 B/492 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 304259 files and directories currently installed.)
Preparing to replace gedit 3.8.3-0ubuntu3 (using .../gedit_3.8.3-0ubuntu3_amd64.deb) ...
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
dpkg: warning: subprocess old pre-removal script returned error exit status 134
dpkg: trying script from the new package instead ...
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
dpkg: error processing /var/cache/apt/archives/gedit_3.8.3-0ubuntu3_amd64.deb (--unpack):
subprocess new pre-removal script returned error exit status 134
No apport report written because MaxReports is reached already
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 134
Errors were encountered while processing:
/var/cache/apt/archives/gedit_3.8.3-0ubuntu3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Мне было интересно, был ли это мой PYTHONHOME, который не был определен должным образом, но это никуда не привело меня к экспорту переменной.
Теперь другая неприятность заключается в том, что рабочий стол Ubuntu, зависящий от gedit, также не работает после обновления, которое я сделал (не задумываясь ...). Так что теперь у меня больше нет рабочего стола. Экран черный после регистрации.
Любое предложение, чтобы вернуть Gedit обратно на ход?
Заранее спасибо
Исправьте меня, если я неправ, но не являюсь Вами говорящий, что gedit не будет работать, когда Ваш PYTHONPATH будет похож на это:
/usr/local/Madagascar_1.5/lib/python2.7/dist-packages:/usr/lib/python2.7:/usr/local/lib/python2.7:/usr/local/Madagascar_1.5/li b/python2.7:/usr/local/Madagascar_1.5/lib/python2.7/dist-packages:/usr/local/Madagascar_1.5/lib:/usr/lib/python3
, Но когда Вы вручную изменяете его с export
к
/usr/lib/python3
, Это хорошо работает?
там какая-либо причина, почему Вы хотели бы, чтобы путь был похож в первом примере все время? Вы могли добраться до этого путем добавления эти export
команда к ~/bash.rc
редактирование : Кроме того, Вы могли экспериментировать и попытаться поместить часть, которую gedit любит, /usr/lib/python3
, в начале пути и затем остальной части его впоследствии, вместо того, чтобы иметь python3 право в конце? Возможно, это использует "логику короткого замыкания" и выбирает первую, это находит что работы.