【问题标题】:Anaconda with PTVS - "conda list" vs "pip list" and PTVS differ带有 PTVS 的 Anaconda -“conda list”与“pip list”和 PTVS 不同
【发布时间】:2017-09-18 18:12:47
【问题描述】:

我使用“conda env create -n TestOne”创建了一个新的 anaconda 环境,它创建了一个没有安装任何包的新 Python 3.5 环境。

我正在将 PTVS 与 Visual Studio 结合使用,并且我手动添加了新环境和路径,如下所示: http://kronoskoders.logdown.com/posts/73461-using-anaconda-and-ptvs

然后我激活环境并在命令提示符下运行: conda install -c conda-forge pyside

现在,当我运行“pip list”时,它与“conda list”不同,并且似乎 Visual Studio 中的 Python Environments->TestOne 显示了 pip 列表。有什么方法可以准确地列出使用 anaconda 实际安装的内容?

如果我转到工具->Python 工具->Python 环境,选择我创建的 TestOne 环境,从下拉列表中选择 Intellisense,然后刷新 DB 我看到 PySide 在列表中并且它在 Intellisense 中可用。

刚刚进入 Python 开发的我有点困惑,设置似乎与 this 与 C# 之类的东西相反。使用 C#,您可以为每个项目下载和引用库,而使用 Python,您可以拥有包含库的环境,这些库在第一次安装后可供每个项目使用。

Visual Studio 有什么方法可以显示 conda 列表,以便我可以轻松查看实际安装的内容?

【问题讨论】:

  • 我注意到在输出的表格中有一列列出了 lite py35_ 和 vc14_ 项。 Conda list 显示所有内容,但 pip list 仅显示 py35_ 项目。我对 pip list 的工作原理还不够了解,无法了解它为什么会跳过其他模块。也许这是一个路径问题,因为 anaconda 有我正在使用的虚拟环境

标签: python visual-studio pip anaconda ptvs


【解决方案1】:

PTVS(Visual Studio 的 Python 工具)尚未完全支持 Conda,但我知道它已在路线图中,因此我们希望支持会有所改善。

目前,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. 将解释器路径设置为指向env 内的python.exe 文件。
  3. 选择Auto Detect,然后选择Apply,自动填写其他字段。
  4. 在解决方案资源管理器中找到您的项目,右键单击 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 全局安装它们。

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多