我正在教一个初学者python类,环境是Anaconda,VS Code和git(以及requirements.txt
的一些附加功能)。
对于Windows学生来说,这运行得很好,但是mac学生有一个现有的python(2.7)可以应对。
Windows学生(即他们有Windows计算机),调试时的环境与控制台环境匹配。但是,mac学生似乎被锁定在2.7环境中。
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 --version
或which python
都没有影响
他们 可以使用python 3
来办事,但这意味着他们需要记住他们与其他2/3学生不同。对他们来说很不一样,对我来说还有更多的工作!
学生们很好,可以从外部终端启动事物,但是如果环境在各个OS上尽可能一致,则可以大大简化事物。
虽然他们是初学者,但是他们可以运行Shell脚本。他们目前有一个安装pip要求和vs代码扩展的程序。
是否存在可使终端与调试环境保持一致的配置?
答案 0 :(得分:4)
在我看来,最佳实践是创建Python虚拟环境(我个人很喜欢使用conda
环境,尤其是在Mac上,您使用不可删除的旧Python版本)。然后,VSCode将自动(在安装了非常强大的Python扩展程序之后)找到所有虚拟环境。这样,您将教给学生一个处理Python zoo a.k.a.软件包不兼容的良好实践。终端环境设置将与VSCode保持一致,而不必依赖于不再需要的任何别名。显然,虚拟环境是与操作系统无关的,因此您将更加一致,并消除了不同学生之间不必要的混乱。
virtenvs的另一个好处是,您可以完全按照自己的requirements.txt
创建一个,然后单击一下即可从一个切换到另一个(在终端中,需要两个命令:deactivate
-> { {1}})。
您可以在VSCode site上了解有关如何处理Python虚拟环境的更多信息
答案 1 :(得分:3)
鉴于别名仅运行一次且在.bash_profile
中不持久,python
的目标是默认解释器,而不是预期的conda python3
解释器。
尝试符号链接conda的python3
可执行文件以捕获python
命名空间
ln -sf /Users/$USER/anaconda3/bin/python3 /Users/$USER/anaconda3/bin/python
这将创建或更新符号链接。对pip
和pip3
使用相同的方法。
答案 2 :(得分:3)
vscode中的Python,让您选择将使用哪个解释器来运行脚本。
它位于"python.pythonPath"
下的设置中,只需将其设置为指向所选的解释器即可。
也可以基于项目进行设置(这是确保具有虚拟环境的项目将使用该解释器和程序包执行的方式),只需在设置窗格中选择 Workspace 并添加所需的python解释器。