85

I am using Django 1.3.7 and python 2.7.6 on windows7 I got an error when I executing my manage.py in this line of code

import shutil, sys, virtualenv, subprocess

amd running it, I got this error

C:\Django-Proj\>python manage.py update_ve
Traceback (most recent call last):
  File "manage.py", line 4, in <module>
    import shutil, sys, virtualenv, subprocess
ImportError: No module named virtualenv

Does anyone have an Idea about my case?

gadss
  • 21,687
  • 41
  • 104
  • 154

11 Answers11

128

Install virtualenv using pip install virtualenv. If you have it already installed, try reinstalling it by removing it with pip uninstall virtualenv and then reinstalling it. Good Luck.

Aurora
  • 1,483
  • 1
  • 10
  • 9
  • 1
    This worked for me on OS X using the MacPorts Python. Although MacPorts includes ports for `virtualenv` and `virtualenvwrapper`, they are outdated. So `pip` bundled with `virtualenv` is outdated, mandating uninstalling the MacPorts one and using `pip` to install the latest `virtualenv`. For details, for any MacPorts users that run into the same issue, see [here](http://stackoverflow.com/questions/17156912/how-to-force-virtualenv-to-install-latest-setuptools-and-pip-from-pypi). – 0 _ Mar 29 '15 at 05:35
  • 3
    On ubuntu, I noticed that even pip install vitualenv is successful, when I execute the command to create one, it keeps saying there's no virtualenv installed and suggesting use apt to install. Should I give it a try? – Shad Dec 25 '15 at 14:59
  • Also found I had a subborn /usr/local/bin/virtualenv binary that wouldn't delete via pip uninstall, so a sudo rm -f on that did the trick, then did a normal user pip install and finally got things to work. – Robert Casey May 05 '16 at 17:14
  • Works perfectly :D – Manoj Kumar Jan 22 '22 at 04:15
  • @Shad, on Ubuntu, it probably defaults to python3, so try: `sudo pip3 install virtualenv` – Gonen Jul 02 '22 at 20:47
22

I had to install virtualenv with the -H flag to set HOME variable to target user's home dir.

sudo -H pip install virtualenv

Bailey Smith
  • 2,853
  • 4
  • 27
  • 39
13

Use pip3 instead of pip. I had the same issue and pip3 worked for me.

$ pip3 install virtualenv
$ virtualenv venv --python=python3
Chirag Kalal
  • 638
  • 1
  • 7
  • 21
12

I think the problem is you need sudo to globally install virtualenv.

> pip install virtualenv
Could not find an activated virtualenv (required).
> sudo pip install virtualenv
Downloading/unpacking virtualenv
...

But this creates files readable only by root (depending on the umask). In this case, uninstalling/reinstalling may not always help.

You can check with ls -la /usr/local/lib/python2.7/dist-packages/virtualenv.py (replacing 2.7 with whatever version you have or are targeting).

My solution was simply:

sudo chmod -R o+rX /usr/local/lib/python2.7
jozxyqk
  • 16,424
  • 12
  • 91
  • 180
  • 1
    This worked for me. In my case `virtualenv` was installed as root; but not accessible by another unprivileged user – oarevalo Mar 20 '17 at 21:27
  • I had this error, `No module named 'virtualenv.seed'; 'virtualenv' is not a package` This solution worked for me, virtualenv was installed as a root, but it did not work for some reason until I changed the chmod as mentioned above. – user1797375 Sep 08 '22 at 20:20
12

Try

python3 -m pip uninstall virtualenv

python3 -m pip install virtualenv
Asunez
  • 2,327
  • 1
  • 23
  • 46
shanwu
  • 1,493
  • 6
  • 35
  • 45
  • It works, while what's the difference between `pip3 uninstall virtualenv` and `python3 -m pip uninstall virtualenv`? – Anderson Apr 18 '23 at 05:40
5

I just ran into this same problem. I had to pip uninstall virtualenv as a user with admin rights, then pip install virtualenv as a normal user. I think it's some kind of permissions issue if you installed virtualenv under admin rights.

brousch
  • 1,064
  • 5
  • 10
0
>virtualenv
ImportError: No module named 'virtualenv'
>pip uninstall virtualenv
PermissionError: [Errno 13] Permission denied:

>sudo pip uninstall virtualenv
Successfully uninstalled virtualenv-15.1.0
>pip install virtualenv
Collecting virtualenv

>virtualenv
Options:

Bingo!

Shuai Li
  • 2,426
  • 4
  • 24
  • 43
0

I had the same problem when I created my virtualenv via pycharm and installed requirements with pycharm. After trail and error , I found that installed requirements are not taken into account by the virtualenv.

The solution is to reinstall all requirements once you have activated your virtualenv:

venv\scripts\activate

python -m pip install -r YourRequirements.txt

Next time I'd better create my virtualenv directly with command line

Community
  • 1
  • 1
petitchamp
  • 55
  • 7
0

Got this error when using the ansible pip module automating some pip installs on my localhost.

fatal: [localhost]: FAILED! => {"changed": false, "cmd": ["/opt/bin/virtualenv", "--system-site-packages", "-p/usr/bin/python3", "/opt/venv/myenv"], "msg": "\n:stderr: /usr/bin/python3: No module named  virtualenv\n"}

Uninstalling virtualenv python3 -m pip uninstall virtualenv did show virtualenv was installed here /home/ubuntu/.local/bin/virtualenv.

In the ansible task specify the virtualenv_command:

- name: install requirements file
  pip:
    virtualenv_command: "/home/{{whoami.stdout}}/.local/bin/virtualenv"
    virtualenv: "/home/{{whoami.stdout}}/.venv/{{item.env.virtualenv}}"
    requirements: "/home/{{whoami.stdout}}/git/{{item.env.requirements_txt}}"
    virtualenv_site_packages: yes
  when: req_stat.stat.exists
steepestascent
  • 153
  • 2
  • 7
0

For mac os the issue was with virtualenv. This is because the folder virtualenv did not exist.

This worked well

python3 -m venv env

Vinz
  • 1
  • 3
0

Poetry wants to be in venv by default so I used venv in docker. I got the error randomly after multiple month of using that setup.

If this is the case for you, just don't use venv in docker. You can turn off venv requirement for poetry by: /usr/bin/poetry config virtualenvs.create false.

It is also possible to export poetry into requirements.txt by poetry export -f requirements.txt --output requirements.txt.

Kuizame
  • 158
  • 1
  • 6