python - snakemake 集群脚本 ImportError snakemake.utils

标签 python conda hpc snakemake pbs

我有一个奇怪的问题,它来来去去,我真的不知道什么时候以及为什么。
我正在运行这样的蛇形管道:

conda activate $myEnv    
snakemake -s $snakefile --configfile test.conf.yml --cluster "python $qsub_script" --latency-wait 60 --use-conda -p -j 10 --jobscript "$job_script"

我在 conda 环境中安装了 snakemake 5.9.1(也尝试降级到 5.5.4)。
如果我只运行这个命令,这工作正常,但是当我将此命令 qsub 到我正在使用的 PBS 集群时,我收到一个错误。我的 qsub 脚本如下所示:
#PBS stuff...

source ~/.bashrc
hostname
conda activate PGC_de_novo

cd $workDir
snakefile="..."
qsub_script="pbs_qsub_snakemake_wrapper.py"
job_script="..."
snakemake -s $snakefile --configfile test.conf.yml --cluster "python $qsub_script" --latency-wait 60 --use-conda -p -j 10 --jobscript "$job_script" >out 2>err

我得到的错误信息是:
...
Traceback (most recent call last):
  File "/path/to/pbs_qsub_snakemake_wrapper.py", line 6, in <module>
    from snakemake.utils import read_job_properties
ImportError: No module named snakemake.utils
Error submitting jobscript (exit code 1):
...

所以看起来由于某种原因我的集群脚本没有找到snakemake,尽管snakemake已经明确安装。正如我所说,这个问题不断出现。它会停留几个小时,然后因为现在明显的原因而消失。我想这表明环境问题,但我真的不知道是什么,并且没有想法。我试过了:
  • 不同的 conda 版本
  • 不同的蛇形版本
  • 集群上的不同节点
  • ssh 到它刚刚失败的节点并尝试重现错误

  • 但没什么。任何想法在哪里看?谢谢!

    最佳答案

    按照@Manavalan Gajapathy 的建议,我添加了 print(sys.version)对蛇文件和集群脚本的命令,并且在这两种情况下都得到了一个不同于激活环境 (3.7.5) 中指示的版本的 python 版本 (2.7.5)。
    长话短说 - 出于某种原因,当我在 PBS 作业中激活环境时,环境路径仅在/usr/bin 之后添加到 $PATH,这导致/usr/bin/python 被使用(它确实没有snakemake包)。在本地激活env时,在$PATH的开头添加env路径,所以使用正确的python。
    我仍然不理解这种行为,但至少我可以通过更改 #PATH 来解决它。我想这不是一个非常优雅的解决方案,但它对我有用。

    关于python - snakemake 集群脚本 ImportError snakemake.utils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59493422/

    相关文章:

    python - 如何在 Jira(Python) 中编辑/更新评论

    python - 如何在似乎拒绝合作的 HPC 中安装 pytorch 1.9?

    python - 在 MacBook Air Catalina 中,conda 上的 pycafe 安装失败

    python - 文件名中的空格 python 3.4.2

    python - 有没有办法修复引用地址: none for a 301 error?

    c# - 我可以在我的开发机器上模拟 MS Compute Cluster Server 吗?

    hpc - 扭矩PBS_服务器

    linux - qdel 和 kill 命令的区别

    python - 计算与 pandas 框架中的条件匹配的行数(如果可能,使用数据的排序)

    python - condaEnviromentError : cannot remove current enviroment . 停用并再次运行 conda remove