2017-02-28 168 views
0

我想通過創建一個virtualenv來保持依賴關係來啓動一個Python 3.6項目。我目前在我的機器上安裝了Python 2.7和3.6,因爲到目前爲止我一直在編寫2.7,我希望嘗試3.6。我遇到了不同版本的Python沒有檢測到我在virtualenv中安裝的模塊的問題。Virtualenv安裝多個Python版本的模塊

例如,創建與命令的virtualenv:virtualenv venv

我然後激活的virtualenv並與命令安裝Django:當我激活出現pip install django

我的問題或者Python的2.7或3.6與命令 py -2py -3,交互式shell都沒有檢測到Django被安裝。

只有在運行python命令時纔會檢測到Django,當我想使用3.6時,該命令默認爲2.7。有誰知道這個可能的解決方案,以便我可以讓我的virtualenv正常工作?謝謝!如果它很重要,我在運行Windows 7的計算機上。

+0

你安裝了Django到你的virtualenv嗎? – haifzhan

+0

什麼是「py -2」和「py -3」?它看起來像你期待它改變你的環境中的Python的版本,但我沒有聽說過這種事情是可能的。 –

+0

是的,Django安裝在virtualenv裏面。 Py -2和Py -3是我被告知是在同一臺機器上啓動python 2.X和3.X的首選方式。這些命令由python在安裝時提供。 – AJwr

回答

0

您必須在創建virtualenv時選擇解釋器。

virtualenv --python=PYTHON36_EXE my_venv 

替換您的Python 3.6安裝的路徑代替PYTHON36_EXE。然後在激活之後,python可執行文件將被綁定到3.6,並且您可以像平常一樣只需pip install Django

+0

嘿,當我嘗試這個時,它說「路徑不存在」。我檢查了我的路徑變量,它看起來像我的python3.6文件夾包含在其中,但由於某種原因,可執行文件被稱爲「python」,而不是「python36」。我可以重命名嗎? – AJwr

+0

不,不要重命名它。只需使用該可執行文件的絕對路徑(即包含文件夾名稱)即可。 – wim

+0

這樣做,感謝您的幫助! – AJwr

1

創建基於python3.6虛擬環境

virtualenv -p python3.6 env36 

激活它:

source env36/bin/activate 

然後venv36已被激活,venv36的PIP現已上市,可以安裝Django照常,並且該包裝將被存儲在env36/lib/python3.6/site-packages下:

pip install django 
0

關鍵是,pip將特定版本的Python安裝到特定位置。基本上,虛擬環境中的pip命令專門爲您的虛擬環境正在使用的解釋器設置。因此,即使您明確調用其他具有激活環境的解釋器,也不會爲默認解釋器選擇安裝的包pip