【问题标题】:Make VS Code terminal match debug environment on a Mac在 Mac 上使 VS Code 终端匹配调试环境
【发布时间】:2019-10-28 21:15:12
【问题描述】:

我正在教一个初学者的 Python 课程,环境是 Anaconda、VS Code 和 git(加上来自 requirements.txt 的一些额外内容)。

对于 windows 学生来说,这运行得很好,但是 mac 学生有一个现有的 python (2.7) 来应对。

windows学生(即他们有一台windows计算机),他们调试时的环境与他们的控制台环境相匹配。然而,mac 学生似乎被锁定在他们的 2.7 环境中。

按照herehere 的建议,我尝试了别名

alias python2='python'
alias python='python3'
alias pip2='pip'
alias pip='pip3'

我已经修改了.bash_profile 文件

echo 'export PATH="/Users/$USER/anaconda3/bin:$PATH"' >>.bash_profile

当从 VS Code 外部启动时,这两种方法似乎都可以完美地修改其终端环境。似乎都没有对从 [cmd]+[`] 启动的环境做任何事情。

我也在终端中尝试过conda activate base,这似乎对python --versionwhich python 没有影响

他们可以使用python 3 运行事物,但这意味着他们需要记住他们与其他 2/3 的学生不同。对他们来说是另类,对我来说还有更多工作!

学生们做得很好,从他们的外部终端启动东西,但如果环境可以在操作系统之间尽可能一致,这将大大简化事情。

虽然他们完全的初学者,但他们可以运行 shell 脚本。他们目前有一个安装 pip 要求和 vs 代码扩展的工具。

是否有使终端与调试环境保持一致的配置?

【问题讨论】:

  • 我的推荐:ignore python 2.
  • @cglacet,这就是我想做的事情
  • 你不能完全隐藏python 2吗?所以 vscode 只会看到 python 3 解释器,因此除了选择“正确的”解释器之外别无选择。你对他们的环境有多少控制权?当您说echo "xx" >> .bash_profile 时,这是否意味着您希望学生运行该命令?
  • 安装Python扩展,可以在底部栏中选择要使用的Python版本。
  • 在 Mac 上,它是 source activate base,而不是 conda activate base。此外,它是python -V,而不是python --version,因为python 有一些烦人的原因。当你写cmd+` 时,你的意思是使用cmd+shift+C从vscode启动一个外部终端吗?无论如何,可以使用 conda 环境,但它是不一致的。安装完微软python扩展并通过状态栏或设置配置python环境后,组群使用vscode中的集成终端就更容易了。集成终端尊重 conda 环境。

标签: python macos visual-studio-code environment


【解决方案1】:

鉴于别名只运行一次并且在 .bash_profile 中不持久,python 的目标是默认解释器,而不是预期的 conda python3 解释器。

尝试符号链接 conda 的 python3 可执行文件以捕获 python 命名空间

ln -sf /Users/$USER/anaconda3/bin/python3 /Users/$USER/anaconda3/bin/python

这将创建或更新符号链接。对pippip3 使用相同的方法。

【讨论】:

    【解决方案2】:

    vscode 中的 Python 让您选择将用于运行脚本的解释器。
    它位于"python.pythonPath" 下的设置中,只需将其设置为指向选择的解释器即可。
    它也可以基于项目进行设置(这是确保具有虚拟环境的项目将使用该解释器和包执行的方式),您只需在设置窗格中选择 Workspace 并添加那里有所需的python解释器。

    【讨论】:

      【解决方案3】:

      在我看来,最好的做法是创建 Python 虚拟环境(我个人喜欢使用 conda 环境,尤其是在 Mac 上,你坚持使用不可移除的旧 Python 版本)。然后 VSCode 会自动(在安装了非常强大的 Python 扩展之后)找到你所有的虚拟环境。通过这种方式,您将教您的学生处理 Python zoo (又名包不兼容)的良好实践。终端环境设置将与 VSCode 保持一致,不再依赖于任何不需要的别名。显然,虚拟环境是独立于操作系统的,因此您会更加一致并消除不同学生之间不必要的混淆。

      virtenvs 的额外好处是您可以完全根据您的requirements.txt 创建一个,并通过单击从一个切换到另一个(在终端中它需要两个命令:deactivate -> activate)。

      您可以在VSCode site 上阅读有关如何处理 Python 虚拟环境的更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-05
        相关资源
        最近更新 更多