我将蛇形制作用于涉及一些外部编写的 python2 脚本的长而复杂的管道。当我尝试使用 pyenv 指定 python2 时,pyenv shell
命令失败pyenv global
并且pyenv local
没有效果。我有两个问题。
- 为什么没有
shell
命令?是因为snakemake运行的是非登录非交互式shell吗? - 是否可以使用pyenv在snakemake规则中切换到python2?
这是一个示例 Snakefile。
rule aaa:
output:
"aaa.txt"
shell:
"""
pyenv versions
python --version
echo "global"
pyenv global 2.7.12
python --version
echo "local"
pyenv local 2.7.12
python --version
echo "shell"
pyenv shell 2.7.12
python --version
echo "pa-pa, zlyj svite" > aaa.txt
"""
这会产生以下输出。
...
rule aaa:
output: aaa.txt
jobid: 0
system
2.7.12
3.5.2
* 3.6.1 (set by PYENV_VERSION environment variable)
Python 3.6.1
global
Python 3.6.1
local
Python 3.6.1
shell
pyenv: no such command `shell'
Error in job aaa while creating output file aaa.txt.
...