0

したがって、Pythonインストールのsite-packagesディレクトリにdjangoプロジェクト(settings.pyとmanage.pyを含むディレクトリ)をインストールしたこのセットアップがあります。私は他のパッケージのアプリを使用するためにこれを行いました。これはうまく機能します。ただし、開発中に、開発サーバー(manage.py runserver)がsite-packageディレクトリからファイルをロードすることに気付きました。

例:以下を使用してmodels.pyからモデルをロードするファイルviews.pyがあります。

from models import Project, Test

修正しようとした本番コード内の小さなエラーのため、開発サーバー内にポップアップが表示され、djangoエラーページ(このような優れた機能)には、サイトパッケージにインストールされているファイルの古いコードが表示されます。だから、私はこの行に入れます:

import models
print models.__file__

その結果は、開発ディレクトリからの、まさに私が望むファイルです。次の行は、models import Projectから、Testはsite-packageディレクトリからモデルをロードしますが、これは私が望んでいることではありません。

名前空間を汚染したと思います。from-importインポートはすでにメモリからインポートをロードしていると思いますが、通常のインポート行はまだメモリにないモジュールをインポートします。これは明らかに、views.pyを正常に変更し、開発サーバーで変更を確認できるという奇妙な効果につながります。

誰かがこれを修正する方法を知っていますか?

システム情報:

  • Python2.7
  • Django1.3
  • Debian
4

1 に答える 1

4

これがvirtualenvの目的です。分離された開発環境を作成し、一度に複数のプロジェクト/バージョンで作業するために不可欠です。

于 2012-10-11T13:08:03.810 に答える