10

Tóm lại, vấn đề của tôi là khi tôi cố gắng để tạo ra một virtualenv sử dụng mkvirtualenv từ virtualenvwrapper, tôi nhận được lỗi sau:quyền vấn đề xa lạ đối với virtualenv python thực thi (Lubuntu-12.10)

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

Tuy nhiên, khi tôi nhìn vào các điều khoản cho nhị phân, như xa như tôi có thể nói, tất cả mọi thứ nên được tốt ...

$ 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* 

tôi nhận được lỗi tương tự khi tôi cố gắng chạy như root:

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

Tôi đang chạy Lubuntu 12.10 trên macbook của mình, cùng với Mountain Lion và đã thiết lập một phân vùng để sử dụng làm thư mục chính được chia sẻ giữa hai lần cài đặt, theo các hướng dẫn tại đây (http://mikeclaffey.com/dual-boot-osx-ubuntu/). Theo như tôi có thể nói, đây là tất cả hoạt động chính xác, cả trong ubuntu và sư tử núi, nhưng tôi đề cập đến nó chỉ vì nó có nghĩa là cài đặt lubuntu của tôi không đúng tiêu chuẩn.

Tôi đã cài đặt python-setuptools và python-dev sử dụng apt-get, sau đó sử dụng sudo easy_install pip để lấy pip-1.2.1, tiếp theo là sudo pip install virtualenv virtualenvwrapper, để nhận virtualenv-1.8.4 và virtualenvwrapper-3.6.

cụ thể hơn nữa: Tôi đã tạo .virtualenvs trong thư mục chính của tôi, và nói thêm:

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

để .bashrc tôi.

Ngoài ra, tôi đã thử sử dụng sudo apt-get install python-pip thay vì easy_install (cài đặt pip-1.1 này, thay vì pip-1.2.1), nhưng có cùng các lỗi quyền.

Mọi trợ giúp sẽ được đánh giá rất nhiều!

+0

Sau khi thêm một số trò chơi khác, tôi phát hiện ra rằng thẻ SD được gắn với NOEXEC. Sau khi remounting mà không có cờ NOEXEC, bây giờ tôi có thể nhận được một chút xa hơn với việc tạo virtualenv. – brousch

+0

Sẽ thật tuyệt nếu bạn thêm câu trả lời đó làm câu trả lời –

Trả lời

21

Nó chỉ ra vấn đề là làm thế nào để tôi gắn kết phân vùng được chia sẻ của tôi. Tôi đã gắn với (trong/etc/fstab):

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

Tuy nhiên, tùy chọn 'người dùng tự động bao gồm 'noexec' --- như vậy, sau khi virtualenv đã sao chép hệ thống python nhị phân để phân vùng nhà của tôi, nó không thể chạy vì cờ 'noexec'.

Thay đổi fstab của tôi để đọc:

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

giải quyết vấn đề.

0

Tôi tin rằng đó chính là vấn đề với quyền thực thi, như bạn đã khám phá. Bạn cũng có thể giải quyết vấn đề này bằng cách tạo virtualenv trong thư mục con của/data hoặc/sd-ext. Tôi đang làm việc trên hỗ trợ đa người dùng, trong đó đặt thư mục nhà theo/dữ liệu/nhà hơn là chỉ một thẻ sd "thư mục nhà".

1

Tôi đã gặp vấn đề tương tự. Tôi đã thử tạo một virtualenv trong thư mục chính của tôi và nó hoạt động tốt, nhưng tôi đã gặp lỗi đó khi tôi cố gắng tạo một tệp trên một phân vùng khác.

Vì vậy, để khắc phục sự cố của bạn, hãy thử một vị trí khác hoặc xem cách công cụ được gắn kết.

1

Khi các câu trả lời khác (may mắn) đã nêu, đó là vấn đề về quyền.Tôi đã giải quyết nó bằng cách gắn lại ổ đĩa theo yêu cầu với các quyền exec chính xác (như đã được chỉ ra). Nhưng tôi không thể sử dụng anwer @ duncanm vì tôi không thể tìm thấy đường dẫn ổ đĩa của tôi trong tập tin /etc/fstab.

Tôi đã thực hiện các thao tác sau trên Ubuntu 14.04 và đã thực hiện công việc.

Để unmount -

$ sudo umount /media/ashish/Work/ 

Để gắn kết lại với các điều khoản đúng -

$ sudo mkdir /media/ashish/Work 
$ sudo mount -o exec /dev/sda6 /media/ashish/Work/ 
$ cd /media/ashish/Work/ 

tôi đã tìm ra phần /dev/sda6 bằng cách nhìn vào tab thuộc tính trong bộ quản lý tập tin.

Các vấn đề liên quan