有没有办法在同一个 conda 环境中安装 python 3 和 python 2?
Posted
技术标签:
【中文标题】有没有办法在同一个 conda 环境中安装 python 3 和 python 2?【英文标题】:Is there a way to install python 3 and python 2 in the same conda environment? 【发布时间】:2019-10-03 04:15:19 【问题描述】:我正在尝试创建一个管道,但我需要的其中一个包仅使用 python2。我希望所有东西都安装在同一个环境中,所以当我将管道发送给人们时,我可以给他们一个conda create --name pipeline_env blah blah blah
。
是否可以这样做但将python3
作为默认python 版本但将python2
作为bin
中的可执行文件?
【问题讨论】:
如果你使用像Snakemake这样的管道工具,你可以在你的管道中使用define distinct Conda envs for different steps。这就是我在开发生物信息学管道时处理这种情况的方式。 【参考方案1】:不,这是不可能的。在 conda 环境的顶层,您将拥有一个 python 可执行文件:
/env_name
- python (or python.exe on Windows)
要求 conda 将 python v2 安装到环境中会将 python 3.x 可执行文件替换为 2.7.x 版本的 python。
但是,您可以在现有环境中创建一个新的 conda 环境。这会很奇怪,但你可以这样做以保持封装。
conda create -n pipeline_env blah blah blah
conda create -p /path/to/pipeline_env/subenv/pipline_v2
【讨论】:
我不明白为什么这不是天生不可能的。显然,python
可执行文件必须引用一个版本或另一个版本(可能是 3 个),但这并不意味着您不能在同一环境中也有 python2 可执行文件。 Python 的特定于版本的目录中都有版本号,所以唯一的冲突是那个可执行文件。但是,我不知道是否有一种简单的方法可以使用conda install
进行设置
对不起。但我不太可能尝试。 Python 2 很快就会消失,对于我的用例,还有其他方法可以解决这个问题。【参考方案2】:
如果可以的话,包可以迁移到python3吗?这是一些有关相同内容的python文档 https://docs.python.org/2/library/2to3.html
或者,使用 rpc / http 访问模块(开销 - 不是一个好主意) 1.包装你的python2并使用rpc执行 2.使用flask或其他微框架并调用你的包
【讨论】:
以上是关于有没有办法在同一个 conda 环境中安装 python 3 和 python 2?的主要内容,如果未能解决你的问题,请参考以下文章