2016-12-12 39 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全局安装它们。