2016-09-22 34 views
0

我已經在OSX系統上通過Anaconda安裝了Python 3.5。安裝並激活虛擬環境後,無法爲virtualenv加載Python 3.5解釋器

virtualenv venv 
source venv/bin/activate 

Python版本是Python 2.7.10。儘管允許我們在virtualenv中加載我們選擇的解釋器,但「/ usr/bin /」僅包含Python 2.6和2.7的文件夾。找出阿納康達蟒3.5路徑(/Users/Username/anaconda/lib/python3.5) 和試圖加載它,

for: virtualenv -p /Users/Username/anaconda/lib/python3.5 venv

後的代碼返回拒絕一個[錯誤13]權限

> Running virtualenv with interpreter /Users/Username/anaconda/lib/python3.5 
> Traceback (most recent call last): File "/usr/local/bin/virtualenv", 
> line 11, in <module> 
>  sys.exit(main()) File "/Library/Python/2.7/site-packages/virtualenv.py", line 790, in main 
>  popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) File 
> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", 
> line 710, in __init__ 
>  errread, errwrite) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", 
> line 1335, in _execute_child 
>  raise child_exception 
OSError: [Errno 13] Permission denied 

for: virtualenv -p /Users/Username/anaconda/bin/python3.5 venv

似乎是另一種類型的錯誤...

Running virtualenv with interpreter /Users/Username/anaconda/bin/python3.5 
Using base prefix '/Users/Username/anaconda' 
New python executable in venv/bin/python3.5 
Not overwriting existing python script venv/bin/python (you must use venv/bin/python3.5) 
ERROR: The executable venv/bin/python3.5 is not functioning 
ERROR: It thinks sys.prefix is '/Users/Username/.../targetfolder' (should be '/Users/Username/.../targetfolder/venv') 
ERROR: virtualenv is not compatible with this system or executable 
+0

您可以使用'-p'選項指定Anaconda的Python 3解釋器的路徑。 – edwinksl

+0

anaconda的python通常會自動找到,至少在Ubuntu上。當在virtualenv之外時,'python'是否使用anaconda python? –

+0

是的,當它在virtualenv之外時,它使用Python 3.5。但仍然搞清楚如何將其加載到virtualenv ... –

回答

1
ERROR: The executable venv/bin/python3.5 is not functioning 
ERROR: It thinks sys.prefix is '/Users/Username/.../targetfolder' (should be '/Users/Username/.../targetfolder/venv') 
ERROR: virtualenv is not compatible with this system or executable 

此錯誤是由於嘗試組合不兼容的Python版本和virtualenv工具而導致的。我不確定這個不兼容性來自哪裏,但我知道如何解決它。

假設你的Python是合理的功能和最近的(閱讀:3.3或更高版本),這應該始終工作:

/path/to/python3.5 -m venv venv 

第一VENV是venv module。第二個是您想要創建virtualenv的目錄的名稱。該命令要求Python自己創建一個virtualenv,而不是向第三方工具炫耀。因此,我們可以合理地確信Python會正確地做到這一點,特別是它不會與自身不兼容。


不幸的是,蟒蛇安裝Python版本不能被描述爲「合理的功能」,因爲it lacks ensurepip。這使得venv模塊無法引導pip進入你的虛擬環境。所以,你需要建立你VENV沒有點子,然後手動安裝:

/path/to/python3.5 -m venv --without-pip venv 

然後從內virtualenv中下載並運行get-pip.py

+0

謝謝!如上所述,我在Python 3.5上,所以應該工作...下面是輸出雖然: 無法符號鏈接'/Users/Username/anaconda/bin/python3.5'到'/ Users/targetfolder/venv/bin/python3 .5',錯誤:命令'['targetpath/venv/bin/python3.5','-Im','ensurepip','--upgrade','--default-pip']'返回的非零退出狀態-11 –

+0

用'--copies'標誌試試吧?如果失敗了,你可能不得不使用'--without-pip',這很不方便。 – Kevin

+0

謝謝!你能再詳細一點嗎?是'/path/to/python3.5 -m venv venv --copies'你的意思是? –