在比較了幾款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_wininstBUILD成功,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安裝包
另附兩個連結:安裝資料http://www.razorvine.net/blog/user/irmen/article/2009-12-05/166我在rb網站上提交的issuehttp://code.google.com/p/reviewboard/issues/detail?id=2490 通過 Wiz 發布