ノートパソコンでcommand lineパラメータ(主にクリック)を使用したpyファイルを実行する方法


コマンドラインIPythonインタフェースとpy(Script)インタフェースは、以下の方法を使用する前に動作が異なります.
したがって、コマンドライン環境で正常に動作していても、pyファイルが正常に動作しない可能性があります(主に関数呼び出し時).
import error: no module named omegaconf
この場合、ジュピットのノートパソコンから簡単に
>>> !pip install omegaconf
実行すればいいのですが、方法が見つからないだけで、上記のように経路を再配置します(一時的な方法).

'!' 活用する


cmdウィンドウで
python demo.py single --config-path configs/cocostuff164k.yaml 
--model_path ... 
実行する必要がある場合は、
ジュピットのノートパソコンにあります.
>>> !python demo.py single --config-path configs/cocostuff164k.yaml 
--model_path ...
をクリックして実行します.

「%%python」の使用


Pythonは、magic command %%pythonを使用して処理される.
もし.
python hello.py hello --name Max --count 3
実行する必要がある場合は、
%%python

import sys
import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
            help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    with open('echo.txt', 'w') as fobj:
        for x in range(count):
            click.echo('Hello %s!' % name)

if __name__ == '__main__':
    # first element is the script name, use empty string instead
    sys.argv = ['', '--name', 'Max', '--count', '3']
    hello()
ソース:https://stackoverflow.com/questions/47820040/using-click-library-in-jupyter-notebook-cell

argparse

parser = argparse.ArgumentParser()
parser.add_argument('--dataset', default='Video', type=str)
parser.add_argument('--train_dir', default='train', type=str)
parser.add_argument('--batch_size', default=128, type=int)
parser.add_argument('--lr', default=0.001, type=float)
parser.add_argument('--maxlen', default=50, type=int)
parser.add_argument('--hidden_units', default=50, type=int)
parser.add_argument('--num_blocks', default=2, type=int)
parser.add_argument('--num_epochs', default=201, type=int)
parser.add_argument('--num_heads', default=1, type=int)
parser.add_argument('--dropout_rate', default=0.5, type=float)
parser.add_argument('--l2_emb', default=0.0, type=float)

# args = parser.parse_args() > 기존(cmd)
args = parser.parse_args(args=[]) > 변경(notebook)
注意:https://velog.io/@yeong95/Jupyter-notebook%EC%97%90%EC%84%9C-argparse-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0