10

總之,我的問題是,當我嘗試創建使用mkvirtualenv從virtualenvwrapper一個virtualenv中,我得到以下錯誤:爲的virtualenv蟒蛇可執行奇怪的權限問題(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 

然而,當,我看二進制文件的權限,至於我可以告訴大家,一切都應該罰款...

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

我得到類似的錯誤,當我嘗試以root身份運行:

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

我在我的Macbook上運行Lubuntu 12.10,並與Mountain Lion一起運行,並在兩次安裝之間設置了一個用作共享主目錄的分區,大致按照此處的說明操作(http://mikeclaffey.com/dual-boot-osx-ubuntu/)。據我所知,這一切都工作正常,無論是在Ubuntu和山獅,但我提到它只是因爲這意味着我的lubuntu安裝不嚴格標準。

我使用apt-get的安裝中的python-setuptools的和python-dev的,然後用sudo easy_install pip獲得PIP-1.2.1,隨後sudo pip install virtualenv virtualenvwrapper,得到的virtualenv-1.8.4和virtualenvwrapper-3.6。

進一步詳情:我在我的主目錄中創建.virtualenvs,並補充說:

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

.bashrc

此外,我嘗試使用sudo apt-get install python-pip而不是easy_install(此安裝pip-1.1,而不是pip-1.2.1),但獲得相同的權限錯誤。

任何幫助將非常感謝!

+0

經過更多的玩耍後,我發現SD卡安裝了NOEXEC。在沒有NOEXEC標誌的情況下重新安裝後,我現在可以通過virtualenv創建得更遠一點。 – brousch

+0

如果您將其添加爲答案,那將會很棒 –

回答

21

事實證明,問題在於如何安裝我的共享分區。我已經安裝了(在/ etc/fstab中):

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

然而,「用戶」選項會自動包含「NOEXEC」 ---因此,在virtualenv中抄襲了該系統的Python二進制來我家的分區,由於'noexec'標誌,它無法運行。

改變我的fstab閱讀:

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

解決了這個問題。

0

我相信這主要是exec權限的問題,正如您發現的那樣。您也可以通過在/ data或/ sd-ext的子目錄中創建virtualenv來解決此問題。我正在研究多用戶支持,它將主目錄放在/ data/home下,而不僅僅是一個SD卡「主目錄」。

1

我有同樣的問題。我試圖在我的home文件夾中創建一個virtualenv,並且工作正常,但是當我嘗試在另一個分區上創建一個時出現此錯誤。

因此,要解決您的問題,請嘗試不同的位置或看看如何裝入東西。

1

正如其他答案(幸好)已經表明,這是一個權限問題。我通過將正確的exec權限(如已經指出的)重新安裝所需的驅動器來解決此問題。但是我無法使用@ duncanm的口氣,因爲我找不到/etc/fstab文件中的驅動器路徑。

我在Ubuntu 14.04上執行了以下操作,它完成了這項工作。

卸載 -

$ sudo umount /media/ashish/Work/ 

後面安裝使用正確的權限 -

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

我通過查看文件管理器的屬性選項卡想通了/dev/sda6部分。