Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
456 views
in Technique[技术] by (71.8m points)

strange permissions problems for virtualenv python executable (lubuntu-12.10)

In brief, my problem is that when I try to create a virtualenv using mkvirtualenv from virtualenvwrapper, I get the following error:

$ mkvirtualenv test
New python executable in test/bin/python
ERROR: The executable test/bin/python could not be run: [Errno 13] Permission denied

However, when I look at the permissions for the binary, as far as I can tell, everything should be fine...

$ ll ~/.virtualenvs/test/bin
total 2604
drwxr-xr-x 1 (username) staff       5 Feb  7 19:10 ./
drwxr-xr-x 1 (username) staff       5 Feb  7 18:51 ../
-rwxr-xr-x 1 (username) staff 2655776 Feb  7 19:10 python*
lrwxrwxrwx 1 (username) staff       6 Feb  7 19:10 python2 -> python*
lrwxrwxrwx 1 (username) staff       6 Feb  7 19:10 python2.7 -> python*

I get similar errors when I try to run as root:

$ sudo .virtualenvs/test/bin/python
sudo: unable to execute .virtualenvs/test/bin/python: Permission denied

I'm running Lubuntu 12.10 on my macbook, alongside Mountain Lion, and have set up a partition to use as a shared home directory between the two installs, roughly following the instructions here (http://mikeclaffey.com/dual-boot-osx-ubuntu/). As far as I can tell, this is all working correctly, both in ubuntu and mountain lion, but I mention it just because it means my lubuntu installation isn't strictly standard.

I've installed python-setuptools and python-dev using apt-get, then used sudo easy_install pip to get pip-1.2.1, followed by sudo pip install virtualenv virtualenvwrapper, to get virtualenv-1.8.4 and virtualenvwrapper-3.6.

Further particulars: I've created .virtualenvs in my home directory, and added:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=$WORKON_HOME

to my .bashrc.

Also, I have tried using sudo apt-get install python-pip instead of easy_install (this installs pip-1.1, rather than pip-1.2.1), but get the same permission errors.

Any help would be very much appreciated!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It turns out the problem was to do with how I'd mounted my shared partition. I'd mounted with (in /etc/fstab):

UUID=....  /home   hfsplus   auto,user,nodev,rw    0    0

However, the 'user' option automatically includes 'noexec' --- thus, after virtualenv had copied the system python binary to my home partition, it was unable to run because of the 'noexec' flag.

Changing my fstab to read:

UUID=....  /home   hfsplus    auto,user,exec,nodev,rw   0   0

solved the problem.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...