2016-03-02 12 views
6

私はいくつかのDjango Webサイトを稼働しており、異なるバージョンのDjangoを実行しています。昨日、Django issued security updates for 1.8 and 1.9。つまり、すべてを安全に保つために、私は各Webサイトにアクセスして、実行中のDjangoのバージョンを更新する必要があります。VirtualEnvを使った集中型Djangoインストール

Djangoはバージョン管理(1.8-1.9のようなマイナーバージョン間での変更が行われますが、1.9.2-1.9.4のようなリリース間では起こらない)が非常にうまく機能するので、それぞれのマイナーバージョン、1.7,1.8,1.9などの中央Djangoインストールがあります。

VirtualEnvで特定のインストールをターゲットにして、Django 1.8を実行しているすべてのWebサイトを1回のインストールで実行できる方法はありますか、そして同様に1.9?

答えて

2

1つの解決策はvirtualenvwrapperからadd2virtualenvを使用することです。単純

、(もちろん、1つのジャンゴメジャーバージョンに対して1つのvirtualenvの)共有Djangoのバージョンの一部virtualenvsを作成しvirtualenvsのそれぞれにコマンドを呼び出す:

add2virtualenv /path/to/shared/virtualenv/lib/python3.4/site-packages 

共有virtualenvの(とPythonのバージョンへのパスを交換する場合必要なもの)をあなたが使いたいものと置き換えてください。

add2virtualenvには永続的な効果があるため、virtualenvwrapperをアクティブにした後に再度呼び出す必要はありません。

+0

virtualenvwrapperの外部で機能を利用できますか?同様に、virtualenvが利用できるようにすることもできますか? – tghw

+0

はい、できます。virtualenvwrapperはvirtualenvの 'site-packages'ディレクトリ内に' _virtualenv_path_extensions.pth'ファイルを作成しています。つまり、指定されたディレクトリを 'sys.path'に追加しています。それがvirtualenvwrapperでどのように正確に行われたかを分析することによって、あなたは間違いなくそれを再現することができます。しかし、virtualenvwrapperを使う方が簡単です。 – GwynBleidD

+0

魅力のように働いて、ありがとう! – tghw

1

あなたがにできるアプローチは、がsite-packagesディレクトリからdjangoにシンボリックリンクすることです。しかし、それはすべての種類のスケッチと思われます。

自分自身は?私はただSaltStackをインストールすることができるので、manage virtualenvs with it

+0

シンボリックリンクソリューションを一回試しました。これは、他の依存関係を手作業で捜す必要があるため、悪い考えです。私のために働いたのはvirtualenvwrapperで、virtualenvには欠けている機能がいくつかあります。このシナリオでは、2つのvirtualenv(Django 1.8、Django 1.9、virutalenvで管理されている依存関係)を持つことができ、必要に応じてDjango 1.8またはDjango 1.9 virtualenvのいずれかにリンクすることができます。具体的には、add2virtualenvコマンドを見てください:http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html#add2virtualenv –

+0

@DRubio特定のバージョンを再インストールしようとすると依存関係が拾われませんか? –

+0

@WayneWerner Djangoをシンボリックリンクすると、すべてのDjangoの依存関係をシンボリックリンクする必要があります。 Pipはシンボリックリンクのすべてが作られたわけではないことを知る方法がありません。 – tghw

-2

これは単にrequirements.txtの目的ではありませんか? Djangoのバージョンを "> = 1.8,< 1.9"と指定することができます。アップグレードすると常に最新の1.8バグ修正リリースがインストールされますが、1.9にはなりません。

+0

それは質問が尋ねていることではありません。今、私はpipインストール-U "django> = 1.8、<1.9"を行うXサイトを持っています。問題は、すべてのXサイトが使用する1つの集中型Django 1.8のインストール方法を尋ねることです。 – tghw

関連する問題