我需要在同一环境中运行一个workflow.py
使用 python 2.7 的脚本和另一个stepA.py
使用 python 3.7 的脚本 。
假设stepA.py
调用 from workflow.py
,一种可能性是设置两个 conda env,一个使用 python2.7,另一个使用 python3.7,workflow.py
在py2env 中运行并编写类似
subprocess.run('bash -c "source activate py3env; stepA.py"', shell=True)
在workflow.py
启动stepA.py
。
我不喜欢这个解决方案,相反,我想修改第一行workflow.py
并stepA.py
指出要使用的 python 版本,例如
#!/usr/bin/env python2.7
Run Code Online (Sandbox Code Playgroud)
而不是简单地
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
在我看来,第二种解决方案更加原子化和干燥。
我试过类似的东西
$ conda --version
conda 4.7.12
$ conda create -n py3env python=3.8
[...]
$ conda env list
# conda environments:
base * /sto1/ref/miniconda2
py3env /sto1/ref/miniconda2/envs/py3env
$ cat ./test.py
#!/usr/bin/env conda …
Run Code Online (Sandbox Code Playgroud) 让我们有一个简单的蛇文件
rule targets:
input:
"plots/dataset1.pdf",
"plots/dataset2.pdf"
rule plot:
input:
"raw/{dataset}.csv"
output:
"plots/{dataset}.pdf"
shell:
"somecommand {input} {output}"
Run Code Online (Sandbox Code Playgroud)
我想归纳出绘图规则,以便它可以在docker容器中运行,
rule targets:
input:
"plots/dataset1.pdf",
"plots/dataset2.pdf"
rule plot:
input:
"raw/{dataset}.csv"
output:
"plots/{dataset}.pdf"
singularity:
"docker://joseespinosa/docker-r-ggplot2"
shell:
"somecommand {input} {output}"
Run Code Online (Sandbox Code Playgroud)
如果我了解得很好,当我运行时,我会在docker容器中snakemake --use-singularity
获得该somecommand
运行,如果不对容器进行一些卷配置,则无法找到输入的csv文件。
您能否提供一个小的工作示例,说明如何在Snakefile或其他Snakemake文件中配置卷?
使用ModelAdmin.list_editable我可以编辑 django admin 列表视图中列出的记录字段,其方式类似于使用 InlineModelAdmin 所做的。
使用InlineModelAdmin.extra我可以显示表单以在内联模型管理视图中添加新记录。
如何在管理列表视图中显示类似的空表单以添加新记录?