J. *_*ams 3 pip python-3.x conda
我正在使用conda版本4.5.11,python 3.6.6和Windows 10。
我使用conda创建虚拟环境
conda create --name venv
Run Code Online (Sandbox Code Playgroud)
当我检查已安装的软件包时
conda list
Run Code Online (Sandbox Code Playgroud)
(如预期)是空的。
但
pip list
Run Code Online (Sandbox Code Playgroud)
很长
问题1:为什么?-当我使用创建虚拟环境时
python -m venv venv
Run Code Online (Sandbox Code Playgroud)
点列表为空。
当我不在激活的虚拟环境中时,
conda list
Run Code Online (Sandbox Code Playgroud)
也很长,但它与点子列表不同(*请参见下文),通常,点子列表是conda列表的子集。至少有一个例外(pip列表中的“ tables”,而不是conda列表中的“ tables”),但我并没有进行太仔细的分析。康达列表会更改/显示一些(所有?)连字符以加下划线(或pip则相反)。还有一些版本不同的实例。
问题2:为什么?(以及后续问题-可以吗?我应该在意吗?)
我希望有一个基线conda“环境”(可能不是正确的词)-即,我已经安装/更新到Ananconda / conda的软件包,然后所有虚拟环境都将被从中删除。如果我需要安装新的东西,它将首先安装到基准中。仅当我需要使用与基准不同版本的软件包创建应用程序时(在可预见的将来我不会设想),才需要以不同的方式更新虚拟环境。
问题3:我是否对此进行了思考?我正在寻找一致性,并希望理解。
- 谢谢。克雷格
后续#1:将一些软件包安装到空的conda venv之后,conda列表和pip列表的结果仍然不同,但是pip列表比以前短得多,但只是conda列表的一个子集(不是包括两个我不使用的软件包,所以我不在乎)
后续#2:在空环境中,我运行了一些代码
python my-app.py
Run Code Online (Sandbox Code Playgroud)
并为它运行无误而感到惊讶。不出所料,当我安装一个软件包(pytest)时,由于缺少依赖项,它无法运行。所以...空不为空。
1. conda list与pip list
如果您所做的只是创建环境(conda create -n venv),则其中未安装任何内容pip。您的操作系统仍将尝试pip在PATH上进行解析,因此很可能pip在Anaconda / miniconda安装中找到了基础。
2. pip list是conda list外部环境的子集
这可能只是conda安装Python软件包以外的东西的问题,而该软件包pip没有安装选项。我不是100,但是对于我来说conda,这是一个更通用的软件包管理器,可以识别更多的软件包,这不足为奇。
3.过度思考
我认为这更多是工作流样式的问题,通常超出了SO的范围,因为它将得到有根据的答案。尝试搜索最佳实践建议,并选择适合您目标的风格。
就我个人而言,我永远不会尝试将所有内容都安装到我的基本/根conda env中,因为安装的次数越多,对不同方向的依赖性要求就越多。最后,conda无论如何都将集中所有软件包(anaconda/pkgs或miniconda3/pkgs),因此我将重点放在制作可满足特定目的的模块化环境中。
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |