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。解压以后是一个文件夹,我该怎么安装呢怎么编译非常感谢
解压当然文件夹了