2017-09-23 5 views
0

urllib.requestのようなPythonモジュールを使用したいが、すべてのモジュールの依存関係を、Pythonインストール全体を使わずにコンピュータ上で使用できるファイルに入れたい。Pythonモジュールとその依存関係をファイルにコピーする方法

特定のモジュールをファイルにコピーするために使用できるモジュールまたはツールはありますか?スクリプト全体を調べて手動でコピーする必要はありません。私はPython 3を使用しています。

答えて

1

この種の操作にはさまざまなオプションがあります。私の頭の上から最初に気になるものは、pythonの組み込みのzipサポートです。 zipファイルに__main__.pyがある場合、zipファイルでpythonを実行すると、スクリプトとして実行されます。シンプルな(純粋なPython、OSに依存しない)パッケージは、そのようなzipファイルに単純に埋め込むことができます。

また、cx_Freezeのようなツールは、OS固有の方法でインタプリタを含む依存関係を持つスクリプトをパッケージ化できます。結果のバンドルにはインタプリタも含まれていますが、ネイティブコンポーネントとのより複雑な依存関係を含めることができるため、通常はフットプリントが大きくなります。私はこれがpythonのzip import機能で可能であるかどうかはわかりません。

+0

私は最初の部分に慣れていません。私はそれを通常のモジュールのように実行しますか? '__main __。py'は通常のモジュールに含まれている必要がありますか?私はこれについての文書をどこで見つけることができるか知っていますか?この可能な解決策(+1)に感謝します。 – Simon

+0

私は実際にこの場所でドキュメントがどこに残っているのか分かりません。 – Anonymouse

+1

私はvirtualenvを作成してリクエストをインストールし、 'venv/lib/python3.5/site-packages'のすべてをzipファイルのルートにコピーし、単純な' __main __。py'( 'インポートリクエスト; print(requests.get( "http://ix.io/M3M").text) ')を使用して、要求を利用できないPythonで実行しようとしました。それは働いた:)私は実際に多くの機能については自分自身を知っていないが、それは非常に魔法のように動作するようだ。 – Anonymouse

1

コンテナテックを使用してください。 例えば、Dockerを使用すると、マシンに新しいものをインストールしなくても、必要なマシンに依存関係のあるコードを移植することができ、時間も大幅に節約できます。

+1

お返事ありがとうございますが、私はこのケースでは他の答えがより有用であると判断しました。 – Simon

関連する問題