コンテンツへスキップ

py実行時に足りないモジュールを自動インストール

Pythonをパソコンにインストールし、pyファイルをダブルクリックするだけでスクリプトが実行されれば便利ですが、標準モジュール以外は適宜インストールする必要があります。

そのインストールの必要性を判断し、自動でインストールする関数です。

ググったときに出てきたコードを参考にしています。

def auto_import(name, module, ver=None):
    try:
        globals()[name] = importlib.import_module(module)
        print('Success: {} already installed'.format(module))
    except ImportError:
        if ver is None:
            subprocess.check_call([sys.executable, "-m", "pip", "install", module, '--trusted-host', 'pypi.python.org', \
                '--trusted-host', 'files.pythonhosted.org', '--trusted-host', 'pypi.org'])
        else:
            subprocess.check_call([sys.executable, "-m", "pip", "install", "{}=={}".format(module,ver), '--trusted-host', 'pypi.python.org', \
                '--trusted-host', 'files.pythonhosted.org', '--trusted-host', 'pypi.org'])            
        globals()[name] = importlib.import_module(module)
        print('Success: installed {}'.format(module))


# 使用例
auto_import('pandas','pandas','1.4.1')