最近碰到的Python項目中,需要安裝MySQL-python依賴,并且項目使用tornado,以下是記錄在其中碰到的坑。
0x01 tornado在render渲染html頁面時報錯
通路頁面時伺服器響應500,檢視錯誤日志,提示:'utf8' codec can't decode byte 0xbf in position 15:invalid start byte
疑惑了很久檔案編碼格式等,後來debug跟蹤發現錯誤,是項目路徑出現問題,最好不要在包含中文路徑中:
snipaste20180809_155405.png
0x02 MySQL-python 1.2.3安裝
項目需要使用MySQL-python 1.2.3,然而通過pip安裝會一直失敗:
snipaste20180809_155857.png
似乎是系統資料庫中找不到某個值
可以通過以下步驟解決:
1、使用要安裝的python環境運作此腳本:register.py#!/usr/bin/env python# -*- coding:utf-8 -*-import sysfrom _winreg import *# tweak as necessaryversion = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"pythonkey = "PythonPath"pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
installpath, installpath, installpath
)def RegisterPy():
try:
reg = OpenKey(HKEY_CURRENT_USER, regpath) except EnvironmentError as e: try:
reg = CreateKey(HKEY_CURRENT_USER, regpath)
SetValue(reg, installkey, REG_SZ, installpath)
SetValue(reg, pythonkey, REG_SZ, pythonpath)
CloseKey(reg) except: print "*** Unable to register!"
return
print "--- Python", version, "is now registered!"
return
if (QueryValue(reg, installkey) == installpath and
QueryValue(reg, pythonkey) == pythonpath):
CloseKey(reg) print "=== Python", version, "is already registered!"
return
CloseKey(reg) print "*** Unable to register!"
print "*** You probably have another Python installation!"RegisterPy()
snipaste20180809_160020.png
作者:日生三金
連結:https://www.jianshu.com/p/1d14324eb584