I updated my system to Ubuntu 20.04
I already had Python 3.6.7
running with virtualenv
and virtualenvwrapper
for my python virtual environment.
After the update
I am able to check get the list of virtual environments those I have already created, but when I tried creating a new virtual environment mkvirtualenv -p python newenv
I get this message
Traceback (most recent call last):
File "/home/abcd/.local/bin/virtualenv", line 7, in <module>
from virtualenv import main
ImportError: cannot import name 'main' from 'virtualenv' (/usr/lib/python3/dist-packages/virtualenv/__init__.py)
Then I checked the python version after update it was Python 3.8.5
I checked for main
inside virtualenv
that the Python 3.8.5
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from virtualenv import main
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'main' from 'virtualenv' (/usr/lib/python3/dist-packages/virtualenv/__init__.py)
>>>
I tried installing virtualenv
and virtualwrapper
for Python 3.8.5
python -m pip install virtualenv virtualenvwrapper
since my default Python
version is 3.8.5
after the update
even after installing I get the same message ImportError: cannot import name 'main' from 'virtualenv'
I found this post Problem with creating Python 3.6 virtual environment on Ubuntu 20.04
Installed Python 3.6.7
as suggested the most popular answer
cd opt
sudo wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
sudo tar -xvf Python-3.6.7.tgz
cd Python-3.6.7
make clean
sudo ./configure
sudo make
sudo make install
updated my bashrc
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/home/abcd/.local/bin/virtualenv
# Virtual Environment Wrapper
source /home/abcd/.local/bin/virtualenvwrapper.sh
For VIRTUALENVWRAPPER_PYTHON
which python3
/usr/local/bin/python3
For VIRTUALENVWRAPPER_VIRTUALENV
sudo find / -name "virtualenv"
/home/abcd/.local/bin/virtualenv
For virtualenvwrapper.sh
sudo find / -name "virtualenvwrapper.sh"
/home/abcd/.local/bin/virtualenvwrapper.sh
source ~/.bashrc
Python3 -V
displays Python 3.6.7
Python -V
displays Python 3.8.5
Installed virtualenv
and virtualenvwrapper
for Python 3.6.7
, using Python3 -m pip install virtualenv virtualenvwrapper
Now I tried creating a virtualenv using Python 3.6.7
mkvirtualenv -p python3 newenv
I get back the same message
Traceback (most recent call last):
File "/home/abcd/.local/bin/virtualenv", line 7, in <module>
from virtualenv import main
ImportError: cannot import name 'main' from 'virtualenv' (/usr/lib/python3/dist-packages/virtualenv/__init__.py)
When I went inside the Python 3.6.7
and Python 3.8.5
check for from virtualenv import main
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from virtualenv import main
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'main' from 'virtualenv' (/usr/lib/python3/dist-packages/virtualenv/__init__.py)
>>>
Python 3.6.7 (default, May 26 2021, 09:24:09)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from virtualenv import main
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'main'
>>>
Whats is the solution, here?
0 Answers