2017-08-29 38 views
0

我剛剛安裝了python 2.7.13和Django 1.11.4。 我創建了一個名爲myproject的項目,並嘗試從下面的命令開始,但它引發了UnicodeDecodeError錯誤。UnicodeDecodeError序號不在範圍內(128)

python manage.py runserver 
Performing system checks... 

System check identified no issues (0 silenced). 
Unhandled exception in thread started by <function wrapper at 0x7f13229f10c8> 
Traceback (most recent call last): 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper 
    fn(*args, **kwargs) 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 128, in inner_run 
    self.check_migrations() 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/core/management/base.py", line 422, in check_migrations 
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/executor.py", line 20, in __init__ 
    self.loader = MigrationLoader(self.connection) 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/loader.py", line 52, in __init__ 
    self.build_graph() 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/loader.py", line 209, in build_graph 
    self.applied_migrations = recorder.applied_migrations() 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations 
    self.ensure_schema() 
    File "/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 59, in ensure_schema 
    raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 6: ordinal not in range(128) 

我沒有配置任何其他的東西,只是試圖啓動開發服務器,但它失敗了。

+0

請在您的設置中包含相關的數據庫配置?您似乎在某處有一個與非ASCII數據庫相關的名稱。 –

+0

如果你剛開始,切換到Python3 – WombatPM

+0

感謝彼得!你能幫我怎麼配置數據庫配置...我的意思是哪個文件? @WombatPM我有計劃使用pymqi模塊.....不知道Python3支持pymqi模塊 – user3171821

回答

0

此錯誤意味着

UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 6: ordinal not in range(128) 

你必須在表名非ASCII字符。 0xf1通常是帶有代字號的拉丁小寫字母n的擴展ASCII碼。

嚴格的ASCII只有字符最多128(0x80)。聰明的程序員意識到他們在分配給一個字符的1字節內存中有128個可能的值,所以他們創建了EXTENDED ASCII。但是每個人都有一個不同的想法,應該在那裏導致CODEPAGES描述你的擴展ASCII方案。這一切已被UNICODE所取代,它允許來自所有真實和想象的語言的每個可能的字符都有其獨特的字節值。這是如何編碼是各種規格的主題,如UFT-8,UTF-16 & ISO-8859-1。

解決方法:從表名中刪除違規字符,並且生活很好。

+0

謝謝@WombatPM ....我到目前爲止還沒有創建任何表....沒有設置,並嘗試啓動服務器的第一次....所以有點困惑的地方非ASCII字符 – user3171821

+0

我' d查看文件''/opt/IBM/Python2.6/lib/python2.7/site-packages/django/db/migrations/recorder.py「,第59行,在ensure_schema' 中查看觸發錯誤的原因。如果你沒有提供數據庫方案,那麼它一定是來自某個地方。 – WombatPM

相關問題