Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么每次打开cmd时都需要激活conda和我的venv?这正常吗?_Python - Fatal编程技术网

Python 为什么每次打开cmd时都需要激活conda和我的venv?这正常吗?

Python 为什么每次打开cmd时都需要激活conda和我的venv?这正常吗?,python,Python,我对编程非常陌生,我正在尝试学习如何创建一个项目,制作venv,并激活它 问题1:是否每次打开命令提示符时都必须激活conda env? 如果打开cmd并键入“python”,我会收到以下消息: 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 env

我对编程非常陌生,我正在尝试学习如何创建一个项目,制作venv,并激活它

问题1:是否每次打开命令提示符时都必须激活conda env?

如果打开cmd并键入“python”,我会收到以下消息:

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.
>>>     
我输入“conda activate”,一切都很酷很好。如果我关闭cmd并再次打开它,它的行为就好像我从未激活过conda,并再次给我相同的消息。这正常吗?我每次都必须激活conda env吗

问题2:(基础)、(环境)和(基础)(环境)之间有什么区别?为什么会发生以下情况?

我遵循了一个制作python项目的教程,在命令提示符下制作了一个env,并使用“env\Scripts\activate.bat”激活它,得到了(env)输出。然后我关闭cmd,再次打开它,如果我导航到我的示例env所在的路径,它前面不会显示(env)

D:\>cd D:/Favorites/1. Programming/LearnPython/PracticeProject

D:\Favorites\1. Programming\LearnPython\PracticeProject>python
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.
>>> exit()

D:\Favorites\1. Programming\LearnPython\PracticeProject>env\Scripts\activate.bat

(env) D:\Favorites\1. Programming\LearnPython\PracticeProject>python
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.
>>> exit()

(env) D:\Favorites\1. Programming\LearnPython\PracticeProject>conda activate

(base) (env) D:\Favorites\1. Programming\LearnPython\PracticeProject>python
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>                                                                                                               

很抱歉,这是非常基本的。经过两天的研究,我有点迷路了。我正处于一个艰难的水平,我正在开始一个项目的第0步。我是否应该在每次打开命令提示符时激活所需的任何环境?即使我没有打开cmd,我是否应该在每次我想处理项目时激活venv?我的venv没有保持激活状态是个问题吗?死亡(基地)是什么意思

环境是Python的一个重要组成部分,尤其是在处理多个具有独立依赖关系的项目时

…例如,如果project\u a使用
Python 2.7
,而project\u b使用
Python 3.6
,您可能需要两个独立的环境,或者您肯定会遇到依赖性问题和非常头痛的问题

问题1:是否每次打开命令提示符时都必须激活conda env

不,您不必每次打开CMD时都激活conda。这只是开发人员的选择问题。也就是说,如果您在Windows机器上工作,并且只使用单一的Conda环境,您可能会发现启动Anaconda终端比启动CMD和每次都必须激活环境更容易

如果您经常在环境之间切换,那么最好从CMD启动和停止Conda或Python环境……这也是选择的问题

问题2:(base),(env)和(base)(env)之间有什么区别?为什么会发生以下情况

这里有两种不同的环境。其中我假设
base
是一个Conda环境,
env
是一个Python虚拟环境


如果您想进一步了解两者之间的区别,下面的文章可能是一个很好的开始

…为什么您希望任何virtualenv都能自动激活?这是一个特定于项目的环境。如果您使用pycharm ide并将您的VirtualNV与项目一起配置,那么ide终端将自动出现。(base)、(env)和(base)(env)之间的区别是什么看起来您正在混合/组合Conda和venv,可能是这样吗?你看过报纸了吗?我同意@sahasrara62的观点,也许你应该让你的IDE来处理这个过程中更繁琐的部分,尽管我建议使用Conda而不是venv。如果你想更多地了解这两者之间的区别,下面的文章可能是一个很好的开始,它是关于Conda和Pip的,而不是关于Conda和venv的。