1

データセットを取得してサーバーに送信し、分析スクリプトを実行して結果を取得するファブリックファイルを作成しています。スクリプトの場所をハードコーディングすると、、、process_script私はすべて元気です。ただし、スクリプトをファイルとしてモジュールに含めたいので、場所をハードコーディングせずにそのファイルにアクセスできるようにしたいと思います。インポートシステムを使用してそれを行うことはできますか?わからない。これが私がやりたいことの作業バージョンです:

#data, script
datafile       = 'data.txt' 
process_script = 'process.py'

#simple function    
def upload_and_run():
    newdir = remote_dir + '/process_temp'
    put(datafile, newdir)
    put(process_script, newdir)
    with cd(newdir):
        run('python2.6 process.py {0}'.format(datafile))
    get(newdir,'%(path)s')

#pseudocode of how I'd like to access the process_script
process_script = from module import script
put(process_script, newdir)

どんな提案でもありがたいです、ありがとう、zach cp

4

1 に答える 1

0

thisおよびthisに従って、モジュールの.__file__属性を使用してモジュール パスにアクセスできます。その後、スクリプトはそのパスでハードコーディングされます。

import os
path = os.path.dirname(my_module.__file__)
process_script = path+ 'process.py'
put(process_script)
于 2013-01-30T00:25:22.693 に答える