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虚拟环境中没有激活的主要内容,如果未能解决你的问题,请参考以下文章