2014-05-24 37 views
1

當我嘗試使用manage.pysyncdb爲我的Django應用程序創建初始數據庫時,它在輸入電子郵件地址後即將創建超級用戶時崩潰:創建超級用戶時Django manage.py sync_db崩潰

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py", line 114, in fallback_getpass 
    stacklevel=2) 
getpass.GetPassWarning: Can not control echo on the terminal. 

我一直試圖解決這個問題:

  • 跳過超級用戶的創建過程中syncdb和運行createsupercommand。這似乎是爲了解決問題,因爲創建了超級用戶,但無法使用該用戶標識和密碼登錄到admin site

  • 刪除並重新創建數據庫。

  • 雙重檢查數據庫中的用戶配置文件:用戶名,密碼,is_staff,is_active都具有正確的值。

  • 調試該過程,直到我實際看到傳遞給authenticate函數的正確用戶名和密碼。

  • 檢查的數據庫編碼設置爲UTF-8。

我使用Django 1.6.5,Pycharm和MySQL。整個事情是相當莫名其妙的,因爲我的其他項目具有相同的設置工作完美無瑕。

有關可能會導致此問題的任何想法?

編輯: 顯然,在僵化的超級用戶創建過程中,Django以某種方式將密碼標記爲不可用(這是不可檢測的,因爲哈希存儲在數據庫中並且不可解釋)。我設法通過在Django環境之外創建密碼散列並將其粘貼到數據庫中來繞過這一點。至少它允許我現在登錄。問題還沒有解決,雖然...

+1

這似乎是由您解釋解釋警告視爲錯誤,並且無論出於何種原因,您的Mac無法處理非呼應密碼的事實引起的;一個簡單的解決方法就是像這樣運行./manage.py:'python -W ignore createsuperuser';這樣你就可以創建超級用戶,但是密碼可能會被回顯; –

回答

2

在Ubuntu中,getpass庫,這是否

# Bind the name getpass to the appropriate function 
try: 
    import termios 
    # it's possible there is an incompatible termios from the 
    # McMillan Installer, make sure we have a UNIX-compatible termios 
    termios.tcgetattr, termios.tcsetattr 
except (ImportError, AttributeError): 
    try: 
     import msvcrt 
    except ImportError: 
     try: 
      from EasyDialogs import AskPassword 
     except ImportError: 
      getpass = fallback_getpass 
     else: 
      getpass = AskPassword 
    else: 
     getpass = win_getpass 
else: 
    getpass = unix_getpass 

你的問題似乎由事實是原因是,getpass庫不能導入3個圖書館之一它希望用於以非回顯方式讀取用戶輸入。

我知道你使用的是Mac,我不知道這是否會有所不同,但如果getpass和我的一樣,你需要確保你安裝了terminos,或EasyDialogs;

這個post on stackoverflow告訴你如何在Mac上安裝軟件包。

你基本上可以運行命令:easy_install pip之後pip install terminos(如果不這樣做,請嘗試安裝msvcrt或EasyDialogs)。

[編輯]msvcrt圖書館只是爲Windows,不介意。

+0

雖然它沒有解決問題,但你的回答突然讓我意識到,這個特定的項目在virtualenv中運行,而我的其他項目沒有。我嘗試了pip install terminos和EasyDialog,其中沒有一個可用。我懷疑在某種程度上有默認的2.7的Mac發行和Pycharm創建的virtualenv之間的差異雖然這不是從已安裝的軟件包明顯... – Roger

+0

此外,只出現EasyDialogs適用於Windows和Linux。 – Roger

相關問題