На Ubuntu 18.04 LTS у меня есть стандартные Python 2.7 и Python 3.6. Мое значение по умолчанию python
указывало на Python 2. Затем я установил virtualenv
:
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip
И изменил мой .bashrc
, добавив следующие строки:
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
Все было хорошо, и я мог создавать виртуальные среды, устанавливать пакеты, работать с ними, деактивировать их и т. Д.
Затем однажды я решил обновить свой Python 3 до Python 3.7, потому что мне нужно было использовать asyncio. Я следовал этому гиду .
Я сделал новый Python 3 по умолчанию, и все казалось нормальным, пока я не попытался открыть новый терминал. Я получил сообщение о том, что virtualenv
не установлен, а затем получил командную строку. Но он был мертв - я ничего не мог напечатать. Я выхожу из терминала, и теперь все, что я получаю, это слово «терминал» в строке меню с небольшим вращающимся кругом, а затем оно исчезает.
Я закомментировал строки в .bashrc
о virtualenv
, но без радости.
EDIT:
Используя xterm я сделал это
cd /usr/bin
sudo rm python3
sudo ln -s python3.6 python3
и перезагрузился.
Теперь я вернул свой терминал. Python3 указывает на Python 3.6.7. Но я боюсь переключать символическую ссылку на 3.7.
UPDATE:
Даже при отключении virtualenv в .bashrc, перезагрузке и попытке вернуться к python3.7 возникает проблема. Я могу вызвать python3.7 напрямую из командной строки и увидеть приглашение python3.7.1 >>>, но система, похоже, не хочет, чтобы он был по умолчанию python3.