おじいちゃんのためのプログラムを書いています。場合によっては、アップデートで、自分のコンピューターにインストールされていない新しいモジュールが必要になります。毎回新しいモジュールを手動でインストールする必要はありませんが、彼はそれを理解するのに十分な技術に精通していません。
ImportErrorsを確認し、エラーメッセージからモジュールをインストールしてもよいですか?そうでない場合、代替手段は何ですか?
これがパッケージマネージャーの仕事です。 Pythonの場合: pip
。
ビルドしているライブラリをパッケージ化し、その依存関係を指定した場合、ユーザー(おじいちゃん)は次のように実行するだけです。
$ pip install --upgrade <name-of-package>
リリースした最新バージョンとそのすべての依存関係を取得します。コードをオンラインで公開したくない場合は、pip
をローカルソースからインストールすることもできます。
$ pip install zipped_package_emailed_to_grandpa.Zip
または、reallyこれを単一の(Python 3.4+)スクリプトにパッケージ化する必要がある場合は、以下からpip
を呼び出すことができます。
#!/usr/bin/env python3
def main():
...
if __name__ == '__main__':
import sys, subprocess
dependencies = ['dep_1', 'dep_2']
subprocess.call([sys.executable, '-m', 'pip', 'install'] + dependencies)
import dep_1, dep_2
main()
しかし、これは絶対に珍しいことです。