Python在Conda环境中,但在Windows虚拟环境中没有激活

Posted

技术标签:

【中文标题】Python在Conda环境中,但在Windows虚拟环境中没有激活【英文标题】:Python is in a Conda environment, but it has not been activated in a Windows virtual environment 【发布时间】:2019-11-02 20:53:01 【问题描述】:

我创建了一个 Windows (10) Python 虚拟环境 (env3.7.3)。当我打开一个在虚拟环境中激活的 cmd 窗口时,在虚拟环境中启动 Python 时收到以下警告消息:

(env3.7.3) C:\Users\redex\OneDrive\Documents\Education\Machine Learning-Ng Python\Exercise7>python
Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

此警告之前已在不同的上下文中发布过,但它没有解决我的问题。此警告仅出现在 Python 虚拟环境中,而不是基本 Conda 环境中。这似乎是 Windows 或 Anaconda 环境变量问题,但我知之甚少! Anaconda 最近升级了,之前看起来还不错,所以可能存在错误或设置问题。

【问题讨论】:

您找到解决方案了吗?我自己将 conda 与 venv 一起用于不同的目的(conda 用于数据科学,venv 用于后端)。它不会破坏任何东西,因为如果我在我的 venv 中调用 sys.executable 它会指向正确的,但是当它不应该发生时出现这个警告很烦人。 【参考方案1】:

错误消息告诉您找到了来自 Conda 环境的 Python 解释器,但尚未调用 conda activate <envname>。你把conda环境的bin/目录放到Windows搜索路径了吗?那是错误的。

你说的是virtualenvs。但是 Python 虚拟环境不同于 Conda 环境。也许你混淆了这两个概念?

来自 Conda 基础环境的 Python 解释器不会抱怨缺少激活,因为它被一些 conda 子命令调用,并且可以在没有激活环境的情况下工作。不过,在使用该 Conda 环境时,您也应该调用 conda activate base

【讨论】:

感谢您的回复。我的意图是创建一个 Python 虚拟环境,而不是 conda 环境。原因与调用调试器时 VS Code 与 conda 的问题有关(请参阅***.com/questions/56475068/…)通过创建本地 python 虚拟环境,调试器可以正常工作。 @Bill 如果您想使用 Python 虚拟环境,请不要使用 conda。两者不混合。【参考方案2】:

myenv 是“你的环境名称”,

试试这个:

conda activate myenv

conda install pip

这应该可以解决问题。

【讨论】:

我应该在哪里“试试这个”?在 Windows cmd 中,conda : The term 'conda' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + conda activate myenv【参考方案3】:

您必须在激活Flask 的环境后激活您的Conda 环境。

这样您将拥有两个虚拟环境,如下所示:

$(virtualenv) (env) C:\Users\Public\Projects\FlaskInt>python

【讨论】:

Flask为什么进图?你能详细说明吗?订单规则的原因是什么?【参考方案4】:

我遇到了类似的问题,

   Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
Failed calling sys.__interactivehook__
Traceback (most recent call last):
  File "D:\anaconda\content\lib\site.py", line 439, in register_readline
readline.read_history_file(history)
  File "D:\anaconda\content\lib\site-packages\pyreadline\rlmain.py", line 165, in read_history_file
self.mode._history.read_history_file(filename)
  File "D:\anaconda\content\lib\site-packages\pyreadline\lineeditor\history.py", line 82, in read_history_file
for line in open(filename, 'r'):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 1985: illegal multibyte sequence

但我通过在第 82 行将“r”替换为“rb”解决了这个问题。

【讨论】:

第 82 行是什么?第 82 行是什么?请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。

以上是关于Python在Conda环境中,但在Windows虚拟环境中没有激活的主要内容,如果未能解决你的问题,请参考以下文章

Windows下Conda 常用命令

Windows下Conda 常用命令

如何使用运行 Windows .exe 的 Python 脚本链接到 conda 环境中的 .dll?

Windows下的Conda安装并创建python环境

conda创建python环境

windows11 conda 创建/删除/查看环境命令 + 换源 + 换环境安装路径