2013-04-24 43 views
0

我是Django的全新品牌,我遇到了一個很大的問題。我無法使用startproject開始我的網絡應用程序。使用startproject命令時Django Unicode解碼錯誤Mac OS X Snow Leopard

當我使用這個命令:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/bin/django-admin.py startproject cms 

我得到這個錯誤:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 37: invalid start byte

,然後它不會創建Web應用程序。我甚至沒有做任何編程,看起來這是Django文件的錯誤,但我真的很困惑,因爲他們自己的文件如果有一個不是英文的字符會造成這個錯誤。我一直在線上搜索,並且發現有Unicode解碼錯誤的人,但是在這個特定步驟中沒有任何問題,並且迄今爲止我還沒有找到答案。我在Snow Leopard的Mac上運行Django,並使用Python 2.7的穩定版Django。我一直試圖弄清楚這一點,現在我只是繼續打牆,我真的想嘗試Django。謝謝你的幫助!

+0

運行該命令的目錄的路徑是什麼? – girasquid 2013-04-24 15:14:41

+0

/卷/ ROYGBIV /當前\ Mac/Django_Development/django_project。我試過它不在我的外部硬盤驅動器上,它仍然給我同樣的錯誤。 – nielsene54 2013-04-24 18:32:42

回答

1

我知道這個問題太舊了,但是這個問題讓我頭痛不已,我會分享我的解決方案,以便其他人可以受益。

我有完全相同的問題。在我的情況下,錯誤是因爲當我解壓Django安裝的tar.gz文件時,存檔中的每個文件都有某種由MacOS創建的隱藏安全副本。所以,django的模板文件夾有很多隱藏的文件和奇怪的字符,導致錯誤消息「UnicodeDecodeError:'utf8'編解碼器無法解碼位置37中的字節0xb0:無效開始字節」當django-admin腳本試圖將模板複製到目標文件夾。我所要做的只是找到名字以「。」開頭的每個文件。並從django安裝文件夾中刪除它們。

通過對django進行非常簡單的調試,我發現了這一點,即使問題的原因不同,這種調試技術可能會幫助您瞭解發生了什麼。

讀取錯誤發生時的回溯我發現錯誤發生在函數調用content.decode('utf-8'),它在django 1.8.1是在django \ core \ management \ templates .py文件,第150行。我打開了位於該行的templates.py文件,並注意到「content」是當前正在讀取的模板文件的內容,該文件存儲在變量「old_path」中。然後在調用content.decode('utf-8')之前編輯templates.py以打印「old_path」變量的值,並且當我再次運行django-admin腳本時,錯誤文件的名稱出現命令提示符。如果您重複此過程,則可以檢查文件是否包含奇怪的字符,以及該文件是否應該位於模板文件夾中(就像我的情況那樣)。

相關問題