したがって、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