8

私は最近、主に Python 2.7 と Django 1.3.3 (Heroku でホスト) を使用しており、複数のプロジェクトを維持しています。VirtualBox 内で実行されている Ubuntu を使用してデスクトップで作業してきましたが、最近旅行に行かなければならず、ノートブックにすべてをロードしたいと考えていました。しかし、私がすぐに発見したことは、virtualenv + Github はプロジェクトを作成するのが非常に簡単であるということでしたが、それらを自分のノートブックに移行するのに苦労しました。私が思いついたアプローチは、新しい virtualenv を作成し、github からコードを複製することでした。しかし、フォルダが空ではないと言われるため、本当に必要なフォルダでは実行できませんでした。だから、私はそれを tmp フォルダーに複製し、本当に必要な場所にすべてをカット/ペーストします。ひどくはありませんが、私は自分のように感じます ここに何かが欠けているので、もっと簡単になるはずです。最初にクローンを作成し、次に mkvirtualenv でしょうか?

それは圧倒的な問題ではありませんが、もう少し変更を加えることを考えています (VirtualBox に乗って、デュアルブートシステムを使用するなど)。もう少しスムーズにできれば素晴らしいと思います。:)

最後に、コンピューター間での git リポジトリの移動に関する投稿をいくつか見つけて読みましたが、Virtualenv を扱っているものは見当たりませんでした (単に見逃しただけかもしれません)。

編集:明確にして混乱を避けるために、私はvirtualenvを「移動」しようとはしていません。新しいものを作成するための最良の方法について話しているだけです。パッケージをインストールし、github からリポジトリを複製します。

4

4 に答える 4

14

必要な唯一のワークフローは次のとおりです。

git clone repo_url somedir
cd somedir
virtualenv <name of environment directory>
source <name of environment directory>/bin/activate
pip install -r requirements.txt

これは、pip freeze > requirements.txt(venv がアクティブ化されている間に) 実行して、virtualenv-pip でインストールされたすべてのライブラリを一覧表示し、それをリポジトリにチェックインしたことを前提としています。

于 2012-09-13T15:57:03.863 に答える
9

これは、あるシステムから別のシステムへの移動は言うまでもなく、virtualenvを1つのシステム上の別の場所に移動することすら想定されていないためです(再配置のサポートはありますが、実験的です)。新しいvirtualenvを作成します。

  • 他のシステムにvirtualenvをインストールする
  • requirements.txtを書き込むか、の出力を保存するpip freeze(および出力を編集する)ことにより、を取得します。
  • Requirements.txtを他のシステムに移動し、新しいvirtualenvを作成して、を介してライブラリをインストールしますpip install -r requirements.txt
  • 他のシステムでgitリポジトリのクローンを作成する

より高度なニーズについては、virtualenv+カスタムコードを含むブートストラップスクリプトを作成して、他のものを設定できます。

編集:virtualenvのルートとリポジトリのルートを同じディレクトリに置くことは、私にはかなり悪い考えのように思えます。リポジトリをvirtualenvルート内のディレクトリに配置するか、完全に別のツリーに配置します。gitが既存のファイルについて不平を言うのを避けるだけでなく(当然、gitによって追跡されないものはすべて削除するのが公正です)、複数のリポジトリにvirtualenvを使用して、名前の衝突を避けることもできます。

于 2012-09-13T15:54:24.307 に答える
3

新しいvirtualenvを作成するスクリプトに加えて、すべての依存関係(Django1.3など)を含むrequirements.txtファイルを作成する必要があります。その後、実行するpip install -r requirements.txtと、すべての依存関係がインストールされます。

pip freeze > stable-req.txt現在のvirtualenvにあるように依存関係を出力することで、pipにこれを作成させることもできます。その後、requirements.txtをバージョン管理下に置くことができます。

于 2012-09-13T15:54:02.883 に答える
1

virtualenvの良いところは、それを作成する方法を説明でき、複数のプラットフォームで繰り返し作成できることです。

したがって、すべてを複製するのではなく、メソッドを複製してvirtualenvを一貫して作成し、それをgitリポジトリに配置します。このようにして、プラットフォーム固有の厄介な問題を回避します。

于 2012-09-13T15:51:12.530 に答える