0

Django でプロジェクトを開始し、Github に保存しました。それは仮想環境にあります。次に、要件を満たした状態で、Github から別の virtualenv にダウンロードしました。しようとすると

(virutalenv)Machine:project user$ python manage.py runserver
[snip snip]
Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x10ad7cad0>>
Traceback (most recent call last):
[snip snip]
  File "/Users/user/project/lib/python2.7/site-packages/south/db/__init__.py", line 83, in <module>
    db = dbs[DEFAULT_DB_ALIAS]
KeyError: 'default'

そして、Pythonで設定を読み込もうとすると、次のことが起こります。settings.py設定は、プロジェクト ルートのファイルにあります。

virtualenv)Machine:project user$ python                          
Python 2.7.5 (default, May 19 2013, 13:26:46) 
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.>>> from django.conf import settings as d_settings
>>> import settings as my_settings
>>> d_settings.configure(my_settings, DEBUG=True)
[snip snip]
  File "/Users/user/project/lib/python2.7/site-packages/django/conf/__init__.py", line 186, in __getattr__
    return getattr(self.default_settings, name)
AttributeError: 'module' object has no attribute 'LOGGING_CONFIG'
>>> import mezzanine.conf
Traceback (most recent call last):
[snip snip]
  File "/Users/user/project/lib/python2.7/site-packages/django/conf/__init__.py", line 186, in __getattr__
    return getattr(self.default_settings, name)
AttributeError: 'module' object has no attribute 'DATABASE_ROUTERS'
>>> 

このペーストビン内のカットされていないトランスクリプト全体: http://pastebin.com/C8Cy6e6v .

プロジェクトは元の virtualenv で正常に動作します。設定されていないことについて不平を言ってALLOWED_HOSTSいますが、それは決して気にしませんでした。オリジナルではデータベースの設定が空白になっていますが、それも気にならない程度です。開発データベースはメザニンのどこかに設定されていると思いますが、どこにあるのかわかりません。Mezzanine はプロジェクト ルートで呼び出される sqlite3 データベースを使用していますdev.dbが、ここでも、それがどこに設定されているかわかりませんでした。2 番目の virtualenv のデータベース設定を強制的に同じデータベース ファイルのコピーから読み取っても効果はありません。

正しい設定をロードするだけの問題だと思いますが、それらがどこにあるのか、どこにあるのかわかりません。

4

1 に答える 1

0

さて、私はそれを理解しました。このコマンドは、設定がデフォルトの local_settings にあることを教えてくれました。

find ~/virtualenv/lib/python2.7/site-packages/mezzanine/ -type f | while read this; do cat $this | grep 'dev\.db' && echo '>>>>>>>>>>>>>>>' $this; done
        "NAME": "dev.db",
>>>>>>>>>>>>>>> /Users/eeytan/dd2/lib/python2.7/site-packages/mezzanine//project_template/local_settings.py.template

その後、デフォルトの.gitignoreファイルにこのファイルがデフォルトで追加されていることがわかりました。

これは、私に反対票を投じた人にとって明らかだったかもしれませんが、解決策を別の場所で探していたので、理解するのに長い時間がかかりました. どこを見ればよいかがわかれば、それは明らかです。StackOverflow での説明なしに反対票を投じるこの傾向は、非常に気がかりです。

于 2013-11-01T06:10:13.430 に答える