OSQA简介:
OSQA是一款免费且开源的问答系统,采用Python的Django开发框架,基于中国优秀的问答系统CNProg,非常类似国外著名的技术问答网站http://stackoverflow.com。
截图:
(刚刚配置出来,还是热乎的,呵呵~~)
1.安装python,我安装的是python 2.7.2的,这个就不多说了,网上太多了。不知道的可以问我。
2.安装setuptools.
在这里,我遇到了问题:我不知道setuptools是什么?
setuptools是python的增强工具,可以让程序员更方便的创建和下载python包。当我们需要安装第三方提供的包时,我们通常需要使用easy_install命令。easy_install命令其实就是调用了setuptools来完成模块的安装工作。OSQA需要几个第三方包的支持,所以我们必需安装setuptools。让它来完成对于包的查找、下载和安装这一系列的操作。
注意:下载的setuptools的完整文件名为:setuptools-0.6c11.win32-py2.7.exe ,我使用的是python2.7.所以下载的是2.7版本的,如果是其他版本的python,则需要下载其他版本的setuptools。
安装完成之后,我们的python安装目录下(例如:C:\Python27\Scripts)会多出一个easy_install.exe文件。
3.为了更方便的使用setuptools的easy_install.exe文件,我们需要将C:/Python26;C:/Python26/Scripts加入PATH。这样,我们就可以再命令行直接使用easy_install命令了。
4.下载django,这里我使用的是django1.3.1
如何查看django的版本呢?
打开一个cmd,输入python
>>> import django >>> print django.VERSION (1, 3, 1, 'final', 0) >>>
这里的1.3.1就是django的版本
当然,我们也可以使用setuptools进行django的安装,方法就是:easy_install django
5.下载OSQA所需要的第三方包:
easy_install markdown【Best match: Markdown 2.0.3】 easy_install html5lib【Best match: html5lib 0.90】 easy_install south【Best match: South 0.7.3】 easy_install python-openid【Best match: python-openid 2.2.5】
6.安装mysql
7.安装mysql和python的支持包MySQL-python-1.2.3.tar.gz(网上资料很多,就不多说了!主题重要!)
8.登录到mysql,创建一个名为osqa的数据库,修改mysql的管理者,用户名:root,密码:root
9.下载OSQA的最新发行版,文件名类似:fantasy-island-0.9.0-beta3.tar.gz,将所有文件copy到C:/Python27/Lib/site-packages/OSQA下
注意:我们需要先创建一个文件夹OSQA,还有,解压的问价是放在fantasy-island-0.9.0-beta3文件夹里的,这个文件夹不能要,需要将里面的内容全部复制出来放到OSQA文件夹中。
10.用记事本打开settings_local.py.dist文件,修改文件内容:
DATABASE_NAME = 'osqa' # Or path to database file if using sqlite3. DATABASE_USER = 'root' # Not used with sqlite3. DATABASE_PASSWORD = 'root' # Not used with sqlite3. DATABASE_ENGINE = 'mysql' #mysql, etc DATABASE_HOST = 'localhost' DATABASE_PORT = '3306'APP_URL = 'http://localhost:8000/'
修改完成后,将文件名的dist后缀去掉。
11,打开一个命令行,进入::/Python26/Lib/site-packages/OSQA,执行命令
manage.py syncdb 创建数据表
12.输入manage.py runserver,运行程序
13.打开浏览器,在浏览器地址栏输入:http://localhost:8000/,就可以看到首页了。
参考资料:http://blog.csdn.net/matianjun002/article/details/6327490(表示感谢!)
可能遇到的问题:
1."ImportError: cannot import name mark_safe
解决办法:进入/forum/utils/html.py
将from django.template import mark_safe 改成from django.utils.safestring import mark_safe
2.AttributeError: 'AdminSite' object has no attribute 'root'
解决办法:打开\forum\urls.py,将
url(r'^%s(.*)' % _('nimda/'), admin.site.urls),
修改成
url(r'^%s(.*)' % _('nimda/'), include(admin.site.urls)),
前者是django1.0的用法,后者是django1.3支持的用法。
ok了!就到这里,好累啊!几天了,终于是弄好了!