<p>从<a href="https://github.com/conda/conda/blob/master/CHANGELOG.md#recommended-change-to-enable-conda-in-your-shell" rel="nofollow noreferrer">conda 4.4</a>开始,cygwin中支持activate&deactivate命令,语法如下(链接的文档还提供了向<code>PATH</code>添加conda的最佳实践,值得查看):</p>
<pre class="lang-sh prettyprint-override"><code>conda activate <name-of-environment-to-activate>
conda deactivate
</code></pre>
<p>然而,有<a href="https://github.com/conda/conda/issues/6896" rel="nofollow noreferrer">a bug</a>阻止了这些操作的开箱即用,cygwin使用的bash脚本都有Windows行结尾(CRLF)。要解决这个问题,有两种选择:</p>
<ol>
<li><p>在<code>.bash_profile</code>或<code>.bashrc</code>中添加以下内容(如@patrickkelly's answer中的脚本所做的那样):</p>
<pre class="lang-sh prettyprint-override"><code>if [[ "${OSTYPE}" == 'cygwin' ]]; then
set -o igncr
export SHELLOPTS
fi
</code></pre></li>
<li><p>使用类似于<a href="https://superuser.com/a/612440/605871">^{<cd4>}</a>的工具将相关文件的行尾改为Unix样式(LF)。必须转换安装conda的目录中的以下文件,可能还有其他文件:</p>
<ul>
<li><code>etc/profile.d/conda.sh</code></li>
<li><code>Scripts/activate</code></li>
<li><code>Scripts/deactivate</code></li>
</ul>
<p><br/><strong>更新</strong>:当conda更新自身时,至少在某些时候会覆盖上述文件,恢复CRLF行尾,因此在这些情况下必须重复将它们转换为LF的过程。</p></li>
</ol>