Posts in category python

Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine

Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 TracRedmine 等工具之间进行过比较,网上简单搜索一下就可以查到以下有代表性的文章:

一般来说这些比较都认为 Redmine 更为优秀,尤其是

  • 可以同时管理多个项目;
  • 安装和部署比较方便(利用rake、rails的db migration安装很方便,Trac则要用到命令行的trac-admin进行配置,以及每个项目有单独的ini配置文件);
  • 使用比较简单(trac的很多功能都需要通过trac-admin在命令行方式下进行配置,不易上手,这方面Redmine则十分方便);

总体来看,缺乏内置的"多项目管理"功能支持算是 Trac 的硬伤,其他方面:

  • 对于开发者而言,命令行不是特别严重的问题,而且 Trac 的插件机制比较完善,http://trac-hacks.org/ 上有大量的插件可以实现基于 Web 界面的管理需求(例如: AccountManagerPlugin实现了内置的用户管理、TracIniAdminPanelPlugin支持通过Web方式调整Trac配置、SvnAuthzAdminPlugin支持Web方式调整SVN权限等等), Python 语言也算比较大众化,自己写一个插件也没有太大压力;
  • Trac 将维基融入了核心组件, 支持的更加彻底,而且其 Wiki 语法 功能强大并且可以通过插件扩展,这对于需要撰写大量文档的情况有不少帮助;而 Redmine 的 Wiki 功能实在太弱,实际使用的时候很不方便;事实上功能丰富的 Wiki 是 Trac 最大的优势;

本文介绍的 PortableTrac 其实是针对官方 Trac 的重新打包发布(目前只支持 Windows),其目的主要是简化 Trac 的安装配置过程,方便用户的使用,这方面的改进和增强包括:

  • 内置中文说明;
  • 自带的Python环境,已安装大量的常用插件,实现开箱即用,不再需要繁琐的安装和配置过程;
  • 已实现与 Apache httpd、SVN、Git 的集成;
  • 提供标准的数据备份和恢复功能;
  • 更详细的介绍可以参见 PortableTrac

下图演示如何简单的在几分钟之内解压并运行一个 Trac 实例(参考 PortableTrac/install),尤其适合初学者:
.

如果需要了解更多信息,请参考 在线演示站点.

PortableTrac and thinkbase.net - upgrade to Python 2.7.4

Original plan was upgrade to Portable Python 2.7.3.2, unfortunately this version is incompatible to mod_wsgi(See below error screenshot), the error message in stdout is :

>>> call "I:\thinkbase.net\github\PortableTrac\httpd\Apache2.2\bin\httpd.exe"
httpd.exe: Syntax error on line 504 of I:/thinkbase.net/github/PortableTrac/httpd/Apache2.2/conf/httpd.conf: Cannot load B:/Apache2.2/modules/mod_wsgi-win32-ap22py27-3.3.so into server: \xb6\xaf\xcc\xac\xc1\xb4\xbd\xd3\xbf\xe2(DLL)\xb3\xf5\xca\xbc\xbb\xaf\xc0\xfd\xb3\xcc\xca\xa7\xb0\xdc\xa1\xa3

The reason is the version of the Microsoft C/C++ compiler(http://code.google.com/p/modwsgi/wiki/InstallationOnWindows#Compiling_From_Source_Code To compile from source code you will need Microsoft C/C++ compiler for Windows. This must be the same version of the compiler as used to build the version of Python being used.).

So finally we chose the official python distribution(Python 2.7.4) and embeded the python runtime into PortableTrac, this is the construction of embeded python runtime, following is the way to embed official python:

  1. Download Python 2.7.4 Windows Installer''(python-2.7.4.msi)'', and install it to C:\Python27(Or else other folder you like);
  1. Download setuptools 0.6c11''(setuptools-0.6c11.win32-py2.7.exe)'' and install it.
  1. Copy files and folders in C:\Python27 into PortableTrac's PortablePython\App folder;
    • Before copy, delete *.pyc and *.pyo files;
  1. Copy %windir%\system32\python27.dll into PortableTrac's PortablePython\App folder;
  1. To make it work on Windows XP, copy following files into PortablePython\App folder:
    • VC90.CRT:
      c:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll
      c:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll
      c:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll
      
    • The manifest(PortablePython\App\Microsoft.VC90.CRT.manifest), Copy from:
      c:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.manifest
      
  1. That's all, we commit the whole python runtime into PortableTrac Repository.

The benefit of embeding python runtime is the easy-trac-deploy: Just download from Github and uncompress it, python runtime is there ready.

Please follow the installation guide, download, then play it, best regards!