0

utilities.py我在目录中创建了一个名为的 python 脚本bin/

#!/usr/bin/env python3

import numpy as np
import pandas as pd
from datetime import datetime
import io 


def print_info(in_df, fname_base):
    buffer = io.StringIO()
    df = in_df.copy()
    df.info(buf=buffer)
    s = buffer.getvalue()
    with open(fname_base+"_info.txt", "w", encoding="utf-8") as f:  
        f.write(s)

def print_desc(in_df, fname_base):
    df = in_df.copy()
    desc = df.describe()
    desc.to_csv(fname_base+"_desc.tsv", sep = '\t')
    
def print_data(in_df, fname_base):
    df = in_df.copy()
    print_info(df, fname_base)
    print_desc(df, fname_base)
    df.to_csv(fname_base+".tsv", sep = '\t')

并使其可执行chmod +x。我想在我的工作流程的各个流程中的多个脚本块中使用这些功能。目前,当我尝试从实用程序模块导入函数时:

#!/bin/bash nextflow 

process transform_data {

    input:
    path(data)

    output:
    path("out.tsv"), emit: out_data

    script:
    """
    #!/usr/bin/env python3
    import pandas as pd
    import io
    from utilities import print_info
    """
}

我收到以下错误:

  Traceback (most recent call last):
    File ".command.sh", line 4, in <module>
      from utilities import print_info
  ModuleNotFoundError: No module named 'utilities'

是否可以通过这种方式导入自己的模块?

4

0 回答 0