如何全局或永久更改Anaconda python环境 - python

如何在全球范围内更改Windows上的Anaconda python环境?这个问题不是在问我如何创建或激活环境,下面已经列出了其他多个问题。这个问题问的是如何全局或永久切换python环境,以便默认环境成为激活的环境,直到再次激活另一个环境。

How to activate an Anaconda environment
How to change default Anaconda python environment

我知道我可以在命令提示符(cmd)中使用命令conda activate my_env_name。但是,这只会更改打开的CMD窗口特定实例的python环境。这不会在全局范围内更改python环境,因此,任何其他正在运行python代码的应用程序(例如:Sublime文本编辑器)仍将使用默认的python环境。

当前,我的系统上有两个环境,如下所示。 Base是安装Anaconda2时创建的默认Python 2.7环境。我创建了一个名为py3的新环境,即python 3.7。

C:\Users\MyUsername>conda env list
# conda environments:
#
base                  *  C:\Users\MyUsername\Anaconda2
py3                      C:\Users\MyUsername\Anaconda2\envs\py3

我有两个要在适当的环境下运行的Python脚本。一种脚本使用Python 2,另一种使用Python3。我将Sublime用作文本编辑器,并直接从文本编辑器构建并运行python脚本。我遇到的问题是,仅通过使用conda activate py3更改CMD中的环境,文本编辑器仍然使用默认的基本环境来运行python脚本。

conda activate my_env_name仅更改特定CMD /终端实例的环境而不全局更改环境时,使用conda activate py3管理多个Python环境的目的是什么?我敢肯定有很多原因,但是也许我无法更加抽象地思考,因为我在Python中的使用主要是用于在文本编辑器中编写脚本和执行脚本。

临时解决方案

我发现的一个临时解决方案是编辑User变量的Path变量,以包括我到其他py3环境的路径。通过转到高级系统设置>>环境变量>>用户变量,我可以管理Path变量。因此,我的Path变量包含base和py3的路径。如果要将默认环境切换为py3,则必须将py3路径的顺序更改为基本路径之前。

尽管此临时解决方案有效,但我始终害怕编辑PATH变量。我认为,至少在Windows上,用户不必担心手动更改或更新PATH变量。为什么需要这个?我最初希望在Power Shell或CMD中使用命令时,它将自动更改Path变量以将Python路径指向所需的备用环境。

参考方案

原因很简单,某些应用程序或项目具有某些可能与一种环境不兼容的依赖性。假设一个项目需要python 2.7,那么您显然无法在python 3环境中运行此应用程序。

现在,要回答有关为何conda仅针对特定CMD更改环境的问题,说实话,请允许我回答为什么每次使用conda activate your-env命令conda都要更改默认环境?您可以切换到python文件所在的目录,然后运行python yourfilename.py

如果您只想更改sublime中的默认解释器,则可以单击此链接here。

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Anaconda Jupyter笔记本内核问题 - python

TL,DR:如何使我的机器/ anaconda忘记python 3.7的存在,以便可以在python 3.6上运行所有内容?我将整个故事以列表格式列出,以使其更易于阅读。1)我在Python 2.7中有一个工作的BagOfWords。 Jupyter笔记本电脑运行得很好。2)我想使用一个称为Newspaper的python库,但是它在python 3而不是p…

python-docx应该在空单元格已满时返回空单元格 - python

我试图遍历文档中的所有表并从中提取文本。作为中间步骤,我只是尝试将文本打印到控制台。我在类似的帖子中已经看过scanny提供的其他代码,但是由于某种原因,它并没有提供我正在解析的文档的预期输出可以在https://www.ontario.ca/laws/regulation/140300中找到该文档from docx import Document from…

Python ThreadPoolExecutor抑制异常 - python

from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…