2013-07-18 12 views
9

私のプロダクションサーバーはインターネットにアクセスできないので、私の開発マシンからプロダクション/開発サーバーにすべての依存関係をコピーしてしまいます。virtualenvによるPythonのデプロイ(インターネットに接続されていないサーバー上)

私はvirtualenvを使用すると、私はこの環境に私のすべての依存関係を持っていました。これを行うと、私はまた、python & virtualenvがインストールされているどのマシンにでも展開できます。

しかし、私はこれをほとんど見たことがなく、汚れているようです。 私は間違っています、これは良い習慣かもしれませんか、それをうまく解決する他の方法がありますか?私は考えるでしょう

+0

'virtualenv'では、依存関係を他のマシンに配備することはできません。代わりに 'fabric'(http://fabfile.org)や' bash'スクリプトを使うといいでしょう。 'virtualenv'はあなたの開発環境を隔離するのに最適です。プロダクション環境に合わせて – furins

+0

virtualenvが提供しなければならないブートストラップ機能を試すことができます(https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.pyの – woozyking

答えて

5

の3つのオプション:

  1. はあなたが必要な依存関係を持つPyPI mirrorあなた自身を実行します。あなたは本当に唯一のファイルレイアウトを構築し、index-urlフラグを使用してローカルサーバからプルする必要があります。

    $ pip install --index-url http://pypi.beastcraft.net/ numpy

  2. 同じアーキテクチャ上virtualenvsを構築し、必要に応じてそれらをコピー。

    これは機能しますが、実際の移植性にはリスクがあります。

  3. 仮想環境を構築してそれらを持ち出す(基本的にオプション2ですが、簡単な簿記/自動化があります)。terrariumを使用してください。

私はこれらのことすべてを行い、実際に自分のPyPIミラーをホストすることが最良の選択だと考えています。デプロイメントを行っているときや新しいコードを試しているときに最も柔軟性があります。

+0

の例をご覧ください)あなた自身のミラーを他の2つのオプションと比較してホスティングします。競合する/シェアの依存関係がある場合は、同じ箱にホストする必要があります。これは、ある種の仮想環境が必要です。 – cmd

関連する問題