2016-12-12 36 views
1

我使用「暢達ENV創建-n TestOne」,它創造了一個新的Python 3.5環境中,沒有安裝的軟件包創建一個新的蟒蛇環境。蟒蛇與PTVS - 「暢達列表」與「PIP列表」和PTVS不同

我使用PTVS與Visual Studio和我手動添加新的環境和路徑按照以下: http://kronoskoders.logdown.com/posts/73461-using-anaconda-and-ptvs

我然後激活環境和在命令提示跑: 康達安裝-c conda-銳意pyside

現在,當我運行「PIP列表」這是不同的,那麼「暢達名單」,看來,Python的Environments-> TestOne在Visual Studio顯示畫中畫列表。有沒有什麼辦法可以獲得使用anaconda實際安裝的內容的準確列表?

如果我進入工具 - > Python工具 - > Python環境,選擇我創建的TestOne環境,從下拉列表中選擇Intellisense,然後刷新數據庫我看到PySide在列表中,它在Intellisense中可用。

這是一個有點混亂,我剛剛進入Python開發的設置似乎與這個工作相對VS像C#。使用C#,您可以在每個項目中下載和參考庫,與Python一樣,您可以使用庫作爲其中一部分的環境,這些庫在首次安裝後可用於每個項目。

有什麼辦法適用於Visual Studio,以顯示暢達列表,而不是讓我可以很容易地看到什麼是實際安裝?

+0

我注意到在輸出的表格中有一列列出了py35_和vc14_的項目。 Conda列表顯示所有內容,但pip列表只顯示py35_項目。我對pip列表的工作原理不瞭解,看看它爲什麼會跳過其他模塊。也許這是一條道路,因爲anaconda具有我正在使用的虛擬環境 – Dru

回答

1

PTVS(Python的工具爲Visual Studio)尚不完全支持康達,但我的理解是在路線圖上,所以我們可以希望,支持將得到改善。

目前,PTVS總是使用pip來安裝新軟件包,並且不會自動檢測conda環境。這並不意味着你不能使用它們。

我認爲對於您的場景,您可能希望在項目本身內創建一個conda環境,以便每個項目都可以擁有自己獨特的環境,包含該特定項目的正確包(就像nuget一樣)。

因此,不是指定環境名稱,而是指定一個前綴。然後,不是全局安裝環境,而是將它安裝在前綴位置,這可能是一個相對路徑。

從路徑上根環境的命令提示符下,在項目中創建的根目錄下名爲env一個新的環境(或您選擇的另一個名字),並激活它:

cd myproject 
conda create -p env python=3.6 
activate <full path to project>\env 

要獲得Visual Studio識別並使用此環境:

  1. 打開Python環境窗口並選擇+ Custom...
  2. 將解釋路徑指向的python.exe文件中env
  3. 選擇Auto Detect然後Apply自動完成其他字段。
  4. 在Solution Explorer中找到您的項目,右鍵單擊Python環境,然後選擇Add/Remove Python Environments。在列表中,請勾選env。解決方案資源管理器中選定的環境現在應爲env

當您將項目檢入版本控制時,請勿添加env目錄。相反,出口環境的文件,並補充說:

conda env export > environment.yml 

的環境可以精確重建:

conda create -f environment.yml -p env 

不要忘記每次安裝時更新environment.yml文件,升級或刪除一套。

最後,請記住在通過conda安裝新軟件包時激活此環境的命令提示符 - 請勿使用Visual Studio軟件包界面,因爲這會使用pip全局安裝它們。