<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Miniconda &#8211; 李辉 / Grey Li</title>
	<atom:link href="https://greyli.com/tag/miniconda/feed/" rel="self" type="application/rss+xml" />
	<link>https://greyli.com</link>
	<description>一个编程和写作爱好者的在线记事本</description>
	<lastBuildDate>Thu, 06 Nov 2025 11:36:11 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.26</generator>

<image>
	<url>https://greyli.com/wp-content/uploads/2025/03/avatar-500-compressed-144x144.jpg</url>
	<title>Miniconda &#8211; 李辉 / Grey Li</title>
	<link>https://greyli.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>只用来管理 Python 版本和虚拟环境，Miniconda 也是一个很好的选择</title>
		<link>https://greyli.com/miniconda-is-another-good-choice/</link>
		<comments>https://greyli.com/miniconda-is-another-good-choice/#comments</comments>
		<pubDate>Thu, 05 Sep 2019 10:22:55 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[计算机与编程]]></category>
		<category><![CDATA[Conda]]></category>
		<category><![CDATA[Miniconda]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://greyli.com/?p=2557</guid>
		<description><![CDATA[Anaconda 是一个面向数据科学的 Python 发行版，它打包了 Conda、Python 和一堆机器学 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Anaconda 是一个面向数据科学的 Python 发行版，它打包了 Conda、Python 和一堆机器学习和人工智能相关和常用的包，而且还可以用来安装一些非 Python 编写的库。对于科学计算相关的用途非常方便，开箱即用。看起来很适合实验室或是学校机房使用……</p>
<p>对于常规的 Python 开发来说，Anaconda 太重了，而且主要面向科学计算领域，但是精简版的 Miniconda 却是一个很好的 Python 版本和虚拟环境管理工具。</p>
<p>更重要的是 Miniconda 兼容三个主流操作系统，而且不同平台使用同样的命令和接口（Conda 4.6 以上）。这大概算是个人偏好，因为我总在写东西给别人看，所以总是喜欢兼容主流操作系统并且接口统一的解决方案。而且另一方面 pyenv、virtualenvwrapper、direnv 等等相关替代工具都没有原生 Windows 支持。 </p>
<h2>Miniconda 是什么</h2>
<p>先来理清几个概念：</p>
<ul>
<li>Conda：包、依赖和环境管理器。</li>
<li>Anaconda（某种蟒蛇的名字）：面向数据科学的 Python 发行版，包含 conda、conda-build、Python 和 100+ 常用的数据科学常用的库及其依赖。</li>
<li>Miniconda：精简版的 Anaconda，也是一个 Python 发行版，只包含 conda、Python 和一些基本的包。</li>
</ul>
<p>相关资源：</p>
<ul>
<li>主页：<a href="https://conda.io/en/latest/">https://conda.io/en/latest/</a></li>
<li>源码：<a href="https://github.com/conda/conda">https://github.com/conda/conda</a></li>
<li>文档：<a href="https://conda.io/projects/conda/en/latest/">https://conda.io/projects/conda/en/latest/</a></li>
</ul>
<h2>Miniconda 基本用法</h2>
<p>首先你需要访问<a href="https://docs.conda.io/en/latest/miniconda.html">下载页面</a>下载对应操作系统的安装包进行安装，Python 版本选择你想作为默认选项（base version）的版本。然后打开 Windows 下的 Anaconda Prompt 或是 Anaconda Powershell Prompt，Linux 或 macOS 直接使用终端程序。</p>
<p>下面是一些关键用法介绍，详细内容可以阅读 <a href="https://docs.conda.io/projects/conda/en/latest/index.html">Conda 文档</a>。</p>
<h3>创建虚拟环境</h3>
<p>使用 conda create 命令创建虚拟环境，使用 &#8211;name 选项（-n）指定虚拟环境名称：</p>
<pre class="">$ conda create --name foo</pre>
<p>使用 conda info 命令查看当前环境名称、Python 版本、虚拟环境文件夹位置、Conda 版本等等各种信息：</p>
<pre class="">$ conda info</pre>
<p>使用 &#8211;envs 选项（-e）查看所有已创建的虚拟环境。在列出的虚拟环境中，使用星号（*）标识的是当前激活的虚拟环境：</p>
<pre class="">$ conda info --envs</pre>
<h3>激活虚拟环境</h3>
<p>使用 conda activate 命令激活虚拟环境，添加虚拟环境名作为参数：</p>
<pre class="">$ conda activate foo</pre>
<p>激活以后会在命令行提示器前显示虚拟环境名称，比如：</p>
<pre class="">(foo) $</pre>
<p>不添加虚拟环境名称，就会重新激活基础环境（base）：</p>
<pre class="">$ conda activate</pre>
<h3>设置虚拟环境的 Python 版本</h3>
<p>在创建虚拟环境的时候，可以使用 python 参数指定 Python 版本。假设你使用的 Miniconda 默认版本是 Python 3.7，如果你想创建一个 Python 2.7 的虚拟环境，使用下面的命令：</p>
<pre class="">$ conda create --name snakes python=2.7</pre>
<p>你可以在虚拟环境名加上标识方便识别 Python 版本，比如：</p>
<pre class="">$ conda create --name snakes-py27 python=2.7</pre>
<h2>搭配 pip / Poetry 来管理依赖</h2>
<p>因为 Conda 安装库的时候默认使用 Conda 自己的仓库，这里包含的 720 多个库除了流行的 Python 包外大多是数据科学相关的包。所以，更好的选择是使用官方 PyPI 仓库，这样可以确保你使用到最近更新的包，而且不会出现有些包找不到的情况。</p>
<p>我们要做的就是只用 Conda 的 Python 版本和虚拟环境管理功能，不用它来管理依赖。依赖管理（安装、卸载、更新等）仍然使用 pip 进行，或是进一步搭配 pip-tools 来管理依赖。</p>
<p>你需要在 conda 环境内使用下面的命令安装 pip：</p>
<pre class="">$ conda install pip</pre>
<p>或是统一使用下面的命令格式创建虚拟环境：</p>
<pre class="">$ conda create --name bar pip</pre>
<p>这样在执行 pip 命令时会使用虚拟环境内的 pip，而不是系统全局的 pip。这样做的副作用是会产生几个多余的依赖。</p>
<p>除此之外，你也可以搭配使用 Poetry。Poetry 默认会自动创建虚拟环境，所以需要关闭 Poetry 自动创建虚拟环境的设定，执行下面的命令即可：</p>
<pre class="">$ poetry config settings.virtualenvs.create false</pre>
<h2>总结</h2>
<p>按照我目前掌握到的信息，Miniconda 的优缺点总结如下：</p>
<p>优点</p>
<ul>
<li>用法简单，​易于上手</li>
<li>替代 pyenv+virtualenv/venv+virtualenvwrapper 的多个工具组合</li>
<li>类似 virtualenvwrapper，可以在任意位置激活虚拟环境，而不是必须在项目根目录</li>
<li>支持管理不同的 Python 版本</li>
<li>兼容性很好，支持 Windows</li>
</ul>
<p>缺点</p>
<ul>
<li>在 Windows 下，需要使用专用的命令行程序</li>
<li>依赖管理比较弱，需要搭配 pip/Poetry 来使用</li>
<li><span data-offset-key="dl3du-0-0">conda 和 pip/Poetry 组合存在潜在的冲突，但</span><a class="Link ztext-link" href="https://www.anaconda.com/conda-4-6-release/" target="_blank" rel="noopener" data-offset-key="dl3du-1-0" data-editable="true"><span data-offset-key="dl3du-1-0">情况在改善</span></a></li>
</ul>
<p>既然一个 Miniconda 就能很好的胜任 Python 版本管理和虚拟环境管理的任务，为什么要用 pyenv+virtualenv/venv+virtualenvwrapper 呢？遗憾的就是依赖管理功能不够完善，和 pip/Poetry 搭配使用则可能会有潜在的冲突。所以，推荐觉得 virtualenv/venv+pip 搭配太麻烦的初学者使用；推荐能接受 Conda+pip/Poetry 这种搭配的人使用；推荐使用 Python 做数据科学相关工作的人使用。</p>
<p>对比之下，最稳定的解决方案大概还是 virtualenv/venv+pip+其他工具……<br />
（如果你发现了错误描述、有不同看法和想要补充的信息，欢迎评论。）</p>
<p>（3）</p>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/miniconda-is-another-good-choice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
