Как я писал в прошлом посте, недавно обновил Ubuntu до 13.04. Как и ожидалось, всплыло ряд проблем, и вот новая из них: обновился python до 2.7.4 и старые virtualenv’ы перестали работать. Выглядит это примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Traceback (most recent call last): File "/home/lizzard/.virtualenvs/whenzo/bin/ipython", line 5, in from pkg_resources import load_entry_point File "/home/lizzard/.virtualenvs/whenzo/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 16, in import sys, os, zipimport, time, re, imp, types File "/home/lizzard/.virtualenvs/whenzo/lib/python2.7/re.py", line 105, in import sre_compile File "/home/lizzard/.virtualenvs/whenzo/lib/python2.7/sre_compile.py", line 14, in import sre_parse File "/home/lizzard/.virtualenvs/whenzo/lib/python2.7/sre_parse.py", line 17, in from sre_constants import * File "/home/lizzard/.virtualenvs/whenzo/lib/python2.7/sre_constants.py", line 18, in from _sre import MAXREPEAT ImportError: cannot import name MAXREPEAT |
Фикс оказался достаточно простым — надо просто пересоздать virtualenv (я использую virtualenvwrapper, но с «голым» virtualenv по-идее тоже должно прокатить):
1 | $ mkvirtualenv <ve_name> |
При этом, все установленные ранее пакеты сохранились и не пришлось всё переустанавливать, а это неплохая экономия времени, когда вам предстоит скомпилировать что-то весьма внушительное (тот же недавно упомянутый PySide, ещё, говорят, numpy славится временем установки).
Если после этого проблема не решилась, то попробуйте удалить все pyc-файлы, например, так:
1 | $ find $VIRTUAL_ENV -name \*.pyc -delete && find <path_to_your_project> -name \*.pyc -delete |