
在比較了幾款CODE REVIEW的工具之后,決定部署一個Reviewboard。基於PYTHON的環境在WINDOWS下配置是相當的麻煩。在照着文檔把每一步做完之后,發現站點還是不能訪問。
查看apache的日志后發現如下LOG:
File
"C:\\Python27\\lib\\site-packages\\django-1.3.1-py2.7.egg\\django\\core\\handlers\\wsgi.py", line
250,
in __call__, referer:
self.load_middleware(), referer:
File
"C:\\Python27\\lib\\site-packages\\django-1.3.1-py2.7.egg\\django\\core\\handlers\\base.py", line
47,
in load_middleware, referer: raise exceptions.ImproperlyConfigured('
Error importing middleware
%s:
"%s"'
% (mw_module, e)), referer: ImproperlyConfigured:
Error importing middleware reviewboard.admin.middleware:
"cannot import name Random",
在翻遍了整個GOOGLE之后,有老外提示是其中的pycrypto編譯的包有問題,需要在Windows下重新編譯。
於是乎下載了pycrypto2.5的源碼。
在WINDOWS下編譯,需要Mingw環境,下載Mingw,安裝選C編譯器就可以。記得把MSYS也勾上。
安裝完之后,進入pycrypto的源碼目錄,執行:
python setup.py build -c mingw32
結果報錯如下:
Traceback (most recent call last):
File "setup.py", line 452, in <module>
core.setup(**kw)
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 247, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 269, in run
raise RuntimeError("chmod error")
RuntimeError: chmod error
又翻遍了GOOGLE之后,有人提示說要裝ActivePerl。切記注意配置環境變量,把ActivePerl的路徑放在Mingw之前。
再執行
python setup.py build -c mingw32python setup.py bdist_wininst
運行后,生成pycrypto-2.5.win32-py2.7.exe
安裝后,訪問reviewboard網站,發現問題依舊。就在我打算放棄的時候,突然看到有人說pycrypto2.5有問題,用低版本的試試。
於是我就下了一個2.2的源碼,重新編譯。
在執行到python setup.py bdist_wininst時報錯
error
: Unable to
find vcvarsall.bat
解決方法如下:
在python的lib\distutils目錄下,找到distutils.cfg文件(如果沒有,就創建一個)。加上下面內容:
[build]
compiler
=mingw32
再次執行python setup.py bdist_wininst
BUILD成功,BDIST目錄下生成.pycrypto-2.2.win32-py2.7.exe安裝文件
刪了之前的2.5版本,再裝這個2.2的版本。
訪問網頁:

已經正常運行了。還有點CSS的問題,應該是路徑的配置。
因為在創建站點的時候,我用了alias指向,需要找到rb站點的conf目錄里的settings_local.py文件
在FORCE_SCRIPT_NAME后,加上alias的名稱,
FORCE_SCRIPT_NAME = "/review/"
這樣再次訪問,

OK!
還是有些小問題,至少都是站點配置問題,慢慢改吧。
后面再寫一些使用的經驗。
為方便大家,我把我編譯的安裝包放上來。(Python 2.7版本)
Pycrypto2.2安裝包
另附兩個鏈接:
安裝資料
我在rb站點上提交的issue