Я новичок в Linux и пытаюсь настроить Python / Django на моей машине! Я установил Python 3.3 из исходного файла, и он был скомпилирован в /usr/local/bin
. Затем я создал символическую связь между /usr/bin/python
и /usr/local/bin/python3
, так что всякий раз, когда я вызываю python из командной строки, он использует последнюю версию.
Сейчас я пытаюсь установить MySQL Python и получаю следующий вывод:
apt-get install python-mysqldb
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-mysqldb is already the newest version.
The following extra packages will be installed:
apt-listchanges python-apt
Suggested packages:
python-glade2 python-gtk2 python-apt-dbg python-vte python-apt-doc
The following packages will be upgraded:
apt-listchanges python-apt
2 upgraded, 0 newly installed, 0 to remove and 142 not upgraded.
3 not fully installed or removed.
Need to get 0 B/394 kB of archives.
After this operation, 250 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Traceback (most recent call last):
File "/usr/bin/apt-listchanges", line 28, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'
Есть идеи, как это исправить? Или какие-нибудь советы о том, как очистить эту установку (если она слишком сломана)?
Если вы «замените» установку Python по умолчанию, вы, вероятно, сломаете систему. Есть много системных инструментов, которые используют python2.X и потерпят неудачу при использовании python3. В вашем случае python3 не имеет модуля apt_pkg
, поэтому вы получаете эту ошибку.
Чтобы решить эту проблему, просто удалите созданную символическую ссылку и свяжите ее с python2.X по умолчанию (в 12.10 это python2.7):
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
Если вы хотите сделать python3 интерпретатором «по умолчанию» Я думаю, что лучший способ, ничего не нарушая, это использовать virtualenv
(подробнее здесь ):
virtualenv -p /usr/bin/python3.3 <destination dir>
Не используйте символическую ссылку /usr/bin/python
на python3. Это сломает большую часть Ubuntu. Только вещи, которые на самом деле перенесены в Python 3.x, смогут работать под python3.