modpython安裝
① 如何在windows下安裝reviewboard
reviewboard作為一個開源的代碼復查工具,已經受到越來越多的開發人員喜愛。然而,也是由於其開源的特性,使得其的安裝也過於linux化。在linux下,只需要下載安裝指定的包即可,包之間的依賴會自動地進行處理。然而在windows下,就需要安裝人員手動地處理各種依賴情況。況且reviewboard官方對於如何在windows下安裝也沒有一個直接的step by step操作,如果僅是按照官方的操作進行,是絕對安裝不了的。
問題主要有幾個,python版本,phthon mysql的windows支持,python與apache的整合。 這幾天問題主要即是因為windows的開發和linux的開發不一致,在windows下並沒有最新或直接支持的相應版本造成的。
我通過一次次的努力,終於在windows下安裝成功,並能與apache成功整合。現將整個安裝過程,記錄下來,對其他有興趣使用reviewboard的人員也有幫助。 首先,下載以下的安裝包,具體下載地址請google,這里只是將包名稱,截圖下來,相信大家根據名稱即會找到相應組件。
接下來,即是按照步驟一步一步地進行安裝了。 安裝python 2.5,使用python-2.5.4.msi進行安裝,建議安裝在C:\Python25下面,即默認的安裝路徑。 安裝easy_install工具,使用setuptools-0.6c11.win32-py2.5.exe進行安裝,默認安裝路徑。 設置環境變數,將C:\ Python25和C:\ Python25\Scripts,設置在path變數中。 安裝patch工具,該用於用於生成兩個文件的diff文件。使用patch-2.5.9-7-setup.exe進行安裝。建議安裝在C:\GnuWin32目錄。安裝完之後,將bin目錄,添加到系統的環境變數當中(注意是系統環境變數,不是個人環境變數)。 安裝memcached工具,該工具用於在reviewboard過程中進行數據緩存處理。使用memcached-1.2.6-win32-bin.zip,將其解壓在c:\目錄下,並在cmd下運行 memcached.exe –d install 將其安裝成服務,並在服務中將其啟動。 在cmd下執行 easy_install python-memcached 以安裝python-memcached,該工具為python與memcached交互的工具包。此命令會聯網進行安裝,因此必須要聯網。 安裝Python Imaging Library,此用於安裝review board所需要使用的圖形處理工具。使用PIL-1.1.7.win32-py2.5.exe進行安裝。 安裝Pycrypto,此用於Reviewboard支持ssh的倉庫訪問。使用pycrypto-2.3.win32-py2.5.zip進行安裝。 安裝reviewboard,在cmd下執行以下命令進行安裝 easy_install ReviewBoard 安裝資料庫支持,在本文中,使用mysql作為底層資料庫,因此安裝python的mysql支持,使用MySQL-python-1.2.2.win32-py2.5.exe進行安裝。 安裝svn支持,svn用於連接svn與我們的svn代碼庫。這里需要svn的客戶端,以及python對svn的支持。安裝svn客戶端,使用CollabNetSubversion-client-1.6.16-1.win32.exe進行安裝。安裝python的svn支持,使用py25-pysvn-svn161-1.7.0-1177.exe進行安裝。 安裝python與apache之間的整合,在本安裝過程中使用了apache作為web伺服器。對於apache2.2,使用mod_python-3.3.1.win32-py2.5-Apache2.2.exe進行安裝;對於apache2.0,使用mod_python-3.3.1.win32-py2.5-Apache2.0.exe進行安裝。 開啟reviewboard,在命令行下,輸入以下命令,用於安裝reviewboard: rb-site install 安裝位置 接下來,填寫相應的信息,需要注意的是,在安裝過程中會選擇資料庫。Reviewboard會自動創建相應的表,但不會創建資料庫,這就需要我們在之前已經將資料庫創建好了。其次,如果想要將reviewboard與現有的apache相整合(即將reviewboard安裝在特定的子目錄中,則在填寫Root Path時,填寫一個相對路徑,如/xxx/) 安裝成功之後,在相應的目錄下,會出現以下目錄信息。
我們關注conf目錄下的信息,進入到conf目錄,將文件apache-modpython.conf中的信息部分到已有apache配置文件中,並進行配置。
如最終apache中的reviweboard配置文件如下所示: LoadMole python_mole moles/mod_python.so //載入相應的模塊 <Location "/reviewboard/"> PythonPath "['e:/reviewboard/conf'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings SetEnv PYTHON_EGG_CACHE "e:/reviewboard/tmp/egg_cache" SetEnv HOME "e:/reviewboard/data" SetHandler mod_python PythonHandler django.core.handlers.modpython PythonAutoReload Off PythonDebug Off # Used to run multiple mod_python sites in the same apache PythonInterpreter reviewboard_reviewboard </Location> # Serve static media without running it through mod_python # (overrides the above) <Location "/reviewboard/media"> SetHandler None </Location> <Location "/reviewboard/errordocs"> SetHandler None </Location> <Directory "e:/reviewboard/htdocs"> AllowOverride All </Directory> # Alias static media requests to filesystem Alias /reviewboard/media "e:/reviewboard/htdocs/media" Alias /reviewboard/errordocs "e:/reviewboard/htdocs/errordocs" 配置好之後,即可重裝啟動apache,進行reviewboard訪問了。
② 如何在CentOS6上安裝Python2.7和Python3.3
如何在CentOS 6上同時安裝Python 2.7和Python 3.3
本文將介紹如何在CentOS 6上安裝Python 2.7和3.3。下面以Python 2.7.6和Python 3.3.5為例進行說明,但本人實測該教程同樣適合於Python3.4.0.
CentOS 6自帶了Python 2.6.6(CentOS 7則自帶了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要隨便升級自帶的Python以免yum不可用。新版本將安裝在/usr/local目錄下以避免和自帶的版本沖突。
雖然「我」只在64位的CentOS 6.5進行了嘗試,但該教程應該適用於所有的CentOS 6版本(本人按此教程在CentOS 7上亦成功安裝Python3.4)。
下面的示例命令您最好以root身份運行或者在命令前加sudo賦予許可權。但注意,若不是以root身份執行的話,make 與make install最好分開執行,並且都在前面加sudo,連著寫,如sudo make && make install的話會在make install過程中報許可權不足問題,因為sudo不作用於&&後面的make install。
安裝前准備
編譯Python之前您最好先安裝一系列的開發工具和一些拓展庫,雖然不是必須的,但這樣Python才能依賴這些工具和拓展庫展示它強悍的功能。下面是利用yum進行工具和拓展庫安裝的示例命令,直接執行即可(注意部分命令顯示不全,但可以通過移動游標查看和復制)。
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
該考慮的因素
在您編譯和安裝Python之前,有些東西您是應該知道或考慮的。如下。
Unicode編碼
Python編碼問題歷史悠久,但不用過多關注,知道它目前支持Unicode編碼即可(Python3中默認的)。考慮到兼容性等原因,除非有特殊的理由,您最好配置下Python 3.2和更早的版本,使其支持UTF-32編碼,雖然會增加小小的內存代價。在Python 2.7中您可以通過在configure時添加選項--enable-unicode=ucs4進行配置,而在Python 3.2中是--with-wide-unicode選項。
Shared library(動態共享庫)
目前大部分的Linux系統自帶的Python都是以共享庫的方式編譯的, 此外,某些第三方工具例如mod_wsgi和Blender,沒有Python的共享庫還運行不了,所以,您最好還是把Python編譯成動態共享庫吧。為了以共享庫方式編譯Python,您必須指明共享庫的路徑。您有兩種選擇:
在configure命令後面添加:LDFLAGS="-Wl,-rpath /usr/local/lib"從而將庫路徑直接編譯進Python中。
以記事本方式打開/etc/ld.so.conf,然後在文件最後添加新行:/usr/local/lib。緊接著運行命令/sbin/ldconfig更新動態鏈接器。 添加後的文件內容在CentOS 6.5 如下:
/etc/ld.so.conf
1
2
include ld.so.conf.d/*.conf
/usr/local/lib
使用 「make altinstall」 而不是make install
切記,在安裝自定義版本的Python時,make altinstall命令是必須的!如果您使用一般的make install命令,呵呵,您將會在解壓編譯的目錄下看到兩個命名一樣但版本不同的python,這有可能會導致一些意想不到的bug哦,具體是什麼作者沒說,我也不知道。
下載,編譯,安裝Python
如下命令可用於下載、編譯和安裝Python。注意,如果您打算安裝後手動修改/etc/ld.so.conf文件以更新動態鏈接器,那麼下面的 LDFLAGS 參數您就可以去掉了。
1
2
3
4
5
6
7
8
9
10
11
12
13
# Python 2.7.6:
wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall(此處切記,要麼以root運行,要麼分開執行!)
# Python 3.3.5:
wget http://python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz
tar xf Python-3.3.5.tar.xz
cd Python-3.3.5
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall(此處切記,要麼以root運行,要麼分開執行!)
執行上述命令之後,您可以在/usr/local/bin/python2.7或/usr/local/bin/python3.3中找到新安裝的Python。而Python 2.6.6則可能在/usr/bin/python,/usr/bin/python2或/usr/bin/python2.6找到。
下載和安裝Setuptools + pip
Setuptools早已取代Distribute成為Python官方的拓展包管理器,以用於從Python Package Index安裝拓展功能包。不同版本的Python需要的Setuptools版本不同。建議您也通過Setuptools安裝pip,它提供了一些額外在安裝拓展功能包時很有用的功能。
以下的命令可用於安裝最新版Setuptools 和 pip。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# First
get the setup script for Setuptools:wgethttps://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
# Then
install it for Python 2.7 and/or Python 3.3:python2.7ez_setup.py
python3.3ez_setup.py
# Now
install pip using the newly installed setuptools:easy_install-2.7pip
easy_install-3.3pip
# With
pip installed you can now do things like this:pip2.7install[packagename]
pip2.7install--upgrade[packagename]
pip2.7uninstall[packagename]
安裝的拓展功能包在/usr/local/lib/pythonX.Y/site-packages/中可以找到(X.Y是Python的版本號)。
接下來幹嘛?
如果您使用 Python 2.7,強烈建議您安裝virtualenv並學會使用它,它可用於創建獨立的 Python 環境。如果您使用 Python 3.3的話就可以省心些,它已被內置了。
不同的 Python 運行環境(也叫沙盒) 可以有自己的 Python 版本和拓展功能包,就是說不同的Python安裝和運行的目錄不同,也可以為每個版本的Python安裝對應的名稱一樣但版本不同的拓展包。 這在開發多個功能不同的項目或在同一個項目中需要用到不同版本的Python是會很有用的。
創建您第一個獨立的Python環境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Install
virtualenv for Python 2.7 and create a sandbox called my27project:pip2.7installvirtualenv
virtualenv-2.7my27project
# Use
the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:pyvenv-3.3my33project
# Check
the system Python interpreter version:python--version
# This
will show Python 2.6.6# Activate
the my27project sandbox and check the version of the default Python interpreter in it:sourcemy27project/bin/activate
python--version
# This
will show Python 2.7.6deactivate
# Activate
the my33project sandbox and check the version of the default Python interpreter in it:sourcemy33project/bin/activate
python--version
# This
will show Python 3.3.5deactivate
當你使用 virtualenv創建一個運行沙盒時,它會自動在沙盒環境中為您安裝setuptools和 pip (聽起來不錯,可以還沒嘗試過)。但如果您使用 pyvenv 的話,您就必須自己動手安裝了。也簡單,激活沙盒之後通過運行下載的z_setup.py文件去安裝即可。
③ 我已經安裝python3.3.4+apache2.2,現在如何選擇mod_python的版本
Python的版本太高了,mod_python並不支持Python 3000以上的版本,http://modpython.org/ 建議可以選擇其它web伺服器,比如Nginx、Lighttpd之類的,現在國產的Kangle擴展性也很強。如果是採用框架,比如Django,在調試的時候可以直接使用Django內置的Python Web伺服器
④ 如何在windows下安裝reviewboard
安裝過程:
(1)安裝python 2.7
安裝包:python-2.7.4.msi
備註:安裝在C:\Python27
(2)安裝easy_install
安裝包:setuptools-0.6c11.win32-py2.7.exe
(3)設置環境變數 PATH=C:\Python25;C:\ Python25\Scripts
(4)安裝patch工具
安裝包:patch-2.5.9-7-setup.exe
備註:安裝在C:\GnuWin32目錄, 加System變數 PATH=C:\GnuWin32\bin
(5)安裝並運行memcached工具
安裝包:memcached-win32-1.4.4-14.zip
備註:cmd運行 memcached.exe –d install 將其安裝成服務
memcached.exe –d start 啟動服務,也可自己手動啟動服務
(memcached.exe –d uninstall 卸載 memcached.exe –d stop 停止服務)
(6)安裝python-memcached
備註:CMD:運行easy_installpython-memcached 命令,程序會自動下載最新安裝包安裝
(7)安裝Python Imaging Library
安裝包:PIL-1.1.7.win32-py2.7.exe
(8)安裝Pycrypto
安裝包:pycrypto-2.6.win32-py2.7.exe
(9)安裝reviewboard
備註:CMD運行easy_install ReviewBoard——默認安裝最新版本
安裝reviewboard時需使用使用1.9.7版本(本地安裝),2.0.2版本時安裝報錯: TypeError: must be char, not unicode
採用本地的軟體安裝,ReviewBoard-1.7.25-py2.7.egg
刪除已安裝的軟體 Easy_install -m 軟體名稱
(10)安裝mysql資料庫---本機已安裝mysql-5.5
安裝包:mysql-5.1.51-win32.msi
(11)安裝Mysql資料庫支持
安裝包:MySQL-python-1.2.4b4.win32-py2.7.exe
(12)安裝svn 客戶端--本機已安裝
安裝包:TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi
(13)安裝svn支持- 安裝包:py27-pysvn-svn1612-1.7.4-1321.exe
(14)安裝apache server
安裝包:httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
(15)安裝python與apache之間的整合
安裝包:mod_wsgi-win32-ap22py27-3.3.so
備註:將文件重命名為mod_wsgi.so ,將該文件拷貝到Apache的moles目錄。 Apache的httpd.conf文件中加入一行: LoadMolewsgi_mole moles/mod_wsgi.so
(16)開啟reviewboard
備註:cmd運行rb-site install 安裝位置(c:\review),開啟過程需要輸入各種參數 需要注意的是,在安裝過程中會選擇資料庫。Reviewboard會自動創建相應的表,但不會創建資料庫,這就需要我們在之前已經將資料庫創建好了。其 次,如果想要將
reviewboard與現有的apache相整合(即將reviewboard安裝在特定的子目錄中,則在填寫RootPath時,填寫 一個相對路徑,如/xxx/)
(17)http文件修改
apache的http.conf修改,增加以下內容
LoadMolewsgi_mole moles/mod_wsgi.so
apache-wsgi.conf中VirtualHost標簽里的所有到已有配置文件http.conf最後處
(18)創建資料庫、資料庫用戶for ReviewBoard(這塊要注意資料庫的字元集設置,默認是UTF-8,如果你要用其他中文字元編碼標准,這里就需要顯式指定,查查mysql的Manual吧)
mysql -u root -p /* 用root用戶登錄 */
mysql> create database reviewboard;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'reviewboard'@'localhost' identified by 'reviewboard'; /* 前一個reviewboard是訪問資料庫的用戶名,後一個reviewboard是密碼 */
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on reviewboard.* to 'reviewboard'@'localhost'; /* 前一個reviewboard是資料庫的名字,而後一個reviewboard則是訪問資料庫的用戶名 */
Query OK, 0 rows affected (0.00 sec)
mysql> exit
(19)創建你的reviewboard站點
rb-site install D:\Program Files\RB /* 之後會有一系列類似安裝向導的步驟,需要你做出選擇,盡量選擇默認值吧 */----windows上不建議文件路徑太深,rb對文件名長度有限制,不能超過7個字元,上面的地址實際上是創建到D:\Program中
· Domain = localhost
· Root Path = /
· Media URL = media/
· Database Type = mysql
· Database Name = reviewboard
· Database server = localhost
· Database username = 'reviewboard'
· Database password = 'reviewboard'
· Cache Type = memcache
· Memcache Server = memcached://localhost:11211/
· Webserver = apache
· Python loader = modpython
(20)漢化方法
Error: errors happened while running xgettext on reset-github-tokens.py
.\hostingsvcs\management\commands\reset-github-tokens.py
安裝gettext,並在環境變數中聲明該路徑
gettext-tools-0.17(1).zip和gettext-runtime-0.17.zip解壓至一個文件夾中
執行
D:\Python27\Lib\site-packages\ReviewBoard-1.7.25-py2.7.egg\reviewboard\site>python D:\Python27\Lib\site-packages\django-1.6.5-py2.7.egg\django\bin\django-admin.py makemessages --locale=zh_CN
若報錯:
Error: This script should be run from the Django SVN tree or your project or app
tree. If you did indeed run it from the SVN checkout or your project or applica
tion, maybe you are just missing the conf/locale (in the django tree) or locale
(for project and application) directory? It is not created automatically, you ha
ve to create it by hand if you want to enable i18n for your project or applicati
on.
在D:\Python27\Lib\site-packages\ReviewBoard-1.7.25-py2.7.egg\reviewboard\下的每個文件夾下都新建一個文件夾locale,然後執行該命令,生成django.po文件
翻譯:
將django.po文件文本打開,然後翻譯成中文
#: .\forms.py:332 .\forms.py:422
msgid "E-Mail Domain"
msgstr "郵件域名"
備註:合並所有的django.po文件,若在review文件夾可執行成功,就不需要合並,
編譯
D:\Python27\Lib\site-packages\ReviewBoard-1.7.25-py2.7.egg\reviewboard\site>python D:\Python27\Lib\site-packages\django-1.6.5-py2.7.egg\django\bin\django-admin.py compilemessages --locale=zh_CN
將編譯後的django.po和django.mo拷貝到
C:\Python25\Lib\site-packages\django-1.2.1-py2.5.egg\django\conf\locale\zh_CN \LC_MESSAGES下覆蓋
修改C:\Python25\Lib\site-packages\django-1.2.1-py2.5.egg\django\conf下的 global_settings.py,將39行的LANGUAGE_CODE = 'en-us' 改成
LANGUAGE_CODE = 'zh-cn'
6. 修改
C:\Python25\Lib\site-packages\ReviewBoard-1.5rc1-py2.5.egg\reviewboard下 的settings.py中25行和33-36行為:
#25:
LANGUAGE_CODE = 'zh-cn' Review Board安裝配置指南
#33-36:
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
LANGUAGES = (
('zh-cn', _('Chinese')),
)
7. 重啟Apache
⑤ 上古卷軸5,用MO載入mod後,出現錯誤:初始化Python失敗,很可能不支持你安裝的Python
你的的圖片里路徑有很多問號????,應該是中文亂碼造成的,不要在目錄里使用中文,改成英文或者拼音再試試。
如果解決了您的問題請採納!
如果未解決請繼續追問
⑥ 我下載下來了python2.7的mod_python。解壓以後是一個文件夾,我該怎麼安裝呢怎麼編譯非常感謝
解壓當然文件夾了