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