2017-07-19 7 views
3

私は必要なパッケージで仮想環境を作成したDjangoプロジェクトを持っています。1つのDjangoプロジェクトに2つの仮想環境がありますか?

開発のために、私は私のプロジェクトにそれを組み込む前にいくつかのコードを試すことができるツールを探していました。私は少し前にJupyterの経験を積んでいましたが、このツールでもう一度作業してもいいと思っていました。

Jupyterの依存関係で最小の仮想環境が乱雑にならないように、私はそれを複製し、django-extensionsと一緒にjupyterをインストールしました。私settings.py

、私が持っている:

if os.environ.get("VENV_NAME") == "jupyter-sandbox": 
    INSTALLED_APPS += ['django_extensions'] 

私はまだdjango_extensionsせずに、最小限の仮想環境を使用することができるように。

Jupyter対応の仮想環境からサーバーを実行できないという点を除けば、かなりうまく動作します。これは私のプロジェクトがdjango-imagesを使用しており、djangoがこの環境(sites-packages/django_images/migrations)で移行ファイルを見つけることができないためです。エラーメッセージは以下の通りです:

raise NodeNotFoundError(self.error_message, self.key, origin=self.origin) 
django.db.migrations.exceptions.NodeNotFoundError: Migration core.0001_initial dependencies reference nonexistent parent node ('django_images', '0002_auto_20170710_2103') 

仮想環境が同じdjango-images移行フォルダを共有したり、それがめちゃくちゃに完全に私のプロジェクトをだろう両方のように、シンボリックリンクを作成するには良いでしょうか?

私はまだ移行について完全に自信が持てません。これについてのアドバイスをいただければ幸いです。

+0

'django_extensions'を使うときは' django_images'も必要ですか? –

+0

はい私のモデルで 'django_images'を使用します。 –

+0

元のvirtualenvを複製してからjupyterとdjango-extensionsをインストールした場合、まだdjangoイメージがインストールされていて、それらの移行に関する不満はないはずです。 – ARJMP

答えて

3

ここでの混乱は、あなたがすべきことだと思います。どの標準プロジェクトでも、プロジェクト依存関係のリストを手元に用意する必要があります。ほとんどのdjangoユーザーはそのリストをrequirements.txt(通常はお勧め)またはsetup.pyに入れます。その後、

# requirements.txt 
django=1.11.3 

と...

:要件-test.txtの、要件-dev.txtなど他のファイルの先頭に -r requirements.txtを使用するために「輸入」その他の要件:あなたは、常に複数の要件を持つことができます
# requirements-test.txt 
-r requirements.txt 
pytest 
tox 

そして最後に...

# requirements-dev.txt 
-r requirements-test.txt 
ipython 
pdbpp 
jupyter 

あなたの目標は、あなたが最初のファイル内で実行するようにプロジェクトのために必要なものは何でも持っていることです。あなたの仮想環境に十分なものがあるかどうかは関係ありません。また、requirements.txtに必要なものが実際に含まれているかどうかをテストするには、toxのようなものを使用する必要があります。希望が役立ちます。

+0

Genius!それがまさに私が必要なものです!どうもありがとう。 –

関連する問題