Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
使用venv时如何选择要运行的python可执行文件?_Python_Virtualenv_Python Venv - Fatal编程技术网

使用venv时如何选择要运行的python可执行文件?

使用venv时如何选择要运行的python可执行文件?,python,virtualenv,python-venv,Python,Virtualenv,Python Venv,我在我的pc(windows 10)上安装了一个python,它来自Anaconda。我是一名数据科学家,使用conda作为包管理器对我来说非常方便 然而,有时我想开发一个小应用程序或脚本与同事分享。在这些情况下,我创建了一个项目文件夹,并在其中python-m venv.venv。 这样,我可以只安装我需要的基本软件包,然后共享requirements.txt文件 我遇到的问题是,使用的python解释器仍然是默认解释器,即Anaconda附带的解释器,即使我激活了虚拟环境并停用了conda

我在我的pc(windows 10)上安装了一个python,它来自Anaconda。我是一名数据科学家,使用conda作为包管理器对我来说非常方便

然而,有时我想开发一个小应用程序或脚本与同事分享。在这些情况下,我创建了一个项目文件夹,并在其中
python-m venv.venv
。 这样,我可以只安装我需要的基本软件包,然后共享requirements.txt文件

我遇到的问题是,使用的python解释器仍然是默认解释器,即Anaconda附带的解释器,即使我激活了虚拟环境并停用了conda one

具体来说,如果我在终端中运行python,我会收到以下警告消息:

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安装是3.7,但如果我想使用早期版本,或3.8,我似乎无法选择

我希望正在使用的python可执行文件是当前活动环境中的可执行文件,但情况似乎并非如此


我如何才能获得它?

首先,您必须安装要在venv中使用的python版本。它必须已经在您的系统上的某个地方可用,以便使用它创建venv

然后,不只是
python-mvenv.venv
指定具有完整路径的python:
/path/to/pythonX.Y-mvenv.venv


至少据我所知,你不能让一个venv共享多个python版本。

你绝对肯定你正在从你想要使用的
venv
文件夹运行激活脚本吗?即使在当前终端窗口中激活了您的环境,您是否也会在中收到“环境未激活”消息?您将知道它是否被激活,因为您应该看到您的环境名称出现在终端提示的开头。是的,100%肯定。如果我没有“conda deactivate”,则错误消息不存在。酷,我对此一无所知。我还认为我之所以会出现这个错误,是因为我的PATH env变量中有Anaconda,并且在终端中执行了“conda init”,因此出于某种原因,它认为我的venv中的解释器属于conda环境,即使它不属于conda环境。我承认我从未使用过conda,但很快就读取了文档,我认为您确实可以管理多个python版本,但不能在同一个venv中。我知道conda本身使用一个特定的python版本,但是一旦
init
您就可以使用
conda create--name xxxx python=X.Y
创建具有不同版本的环境,我知道这一点。conda的特点是它是一个用于数据科学任务的包管理器。因此,当使用
conda create
创建新的env时,默认情况下它还会安装一些包。这在大多数情况下都是可以的,但是如果我需要与某人共享一个应用程序,那么所有那些不需要的额外软件包都会使requirements.txt文件膨胀,因此我在这些情况下使用python-venv和pip,因为它们也只安装您要求的内容,并尽可能保持env干净。