简体   繁体   中英

Installation issues for Virtualenv and VirtualenvWrapper in Ubuntu 13.04

Ubuntu Server in VirtualBox. I am trying to install VirtualEnv to start learning Flask and bottle. Some details of my setup.

vks@UbSrVb:~$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="12.04.2 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.2 LTS)"
VERSION_ID="12.04"

vks@UbSrVb:~$ python --version
Python 2.7.3
vks@UbSrVb:~$ echo $VIRTUALENVWRAPPER_PYTHON
/usr/bin/python
vks@UbSrVb:~$ echo $VIRTUALENV_PYTHON

vks@UbSrVb:~$

When I boot my Virtual Machine, I get the following error on my console

/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenv has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

When i try to initialize a virtualenv I get the following errors

vks@UbSrVb:~/dropbox/venv$ virtualenv try1
New python executable in try1/bin/python3.2
Also creating executable in try1/bin/python
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.9.1', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 979, in main
    no_pip=options.no_pip)
  File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 1081, in create_environment
    site_packages=site_packages, clear=clear))
  File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 1499, in install_python
    os.symlink(py_executable_base, full_pth)
OSError: [Errno 30] Read-only file system


vks@UbSrVb:~/dropbox/venv$ ls
try1
vks@UbSrVb:~/dropbox/venv$ ls try1/
bin  include  lib
vks@UbSrVb:~/dropbox/venv$ 

My .bashrc entries

export WORKON_HOME='~/dropbox/venv/'
source '/usr/local/bin/virtualenvwrapper.sh'

Q1 - As per the error at bootup, How do I ensure virtualenv is installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly ?
Q2 - Even with sudo I get the same "Read-only file system" Error ?

I have tried installing virtualenv using pip and then apt-get, just to hit and try.

Try setting your WORKON_HOME global to another path (~/.virtualenvs) for example a see if that works, maybe the problem is with that shared directory, are you using windows? If you are, try installing ntfs-3g, see https://askubuntu.com/questions/70281/why-does-my-ntfs-partition-mount-as-read-only

Also in my profile configuration file I like to detect first if virtualenvwrapper is installed:

if which virtualenvwrapper.sh &> /dev/null; then
    WORKON_HOME=$HOME/.virtualenvs
    # path to virtualenvwrapper, in my case
    source /usr/local/share/python/virtualenvwrapper.sh
fi

I had the problem where my pip was for a different version of python than the one I wanted to use.

$ python -V
Python 2.7.5+
$ pip -V
pip 1.5.4 from /usr/local/lib/python3.3/dist-packages (python 3.3)

So when I used pip to install virtualenv and virtualenvwrapper , the new python packages were put in python3.3 's dist-packages, so of course my python2.7 couldn't find them!

To fix this, I had to use the appropriate version of pip, in my case it was pip2 .

$ pip2 -V
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages (python 2.7)

So make sure you are using the appropriate version of pip .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM