努力中的天才~
百度空间 | 百度首页 
 
文章列表
 
2009年02月22日 星期日 13:12
新的学习日记博客已经在:http://halfcool-devel.blogspot.com/
更新了这里文章的一些错误。
 
2009年01月02日 星期五 17:05
今天在 Fedora 10 中安装 setuptools ,
$yum search setuptools
找到两个包:setuptools 和 python-setuptools ,两个之间有冲突,只能安装其中一个。
装了 python-setuptools ,版本是最新的 0.6c9 ,但是并没有 生成系统的命令,使用比较麻烦。
装了 setuptools ,版本是 0.6c2 ,嫌版本过低。
只好自己安装。
$wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz#md5=3864c01d9c719c8924c455714492295e
$tar -xzvf setuptools-0.6c9.tar.gz
$cd setuptools-0.6c9
$python setup.py install
装完就有了系统命令了,安装其他 python 包就很容易了。
 
2009年01月01日 星期四 19:20
1、进入 virtualenv 虚拟环境:
$source /path/to/newenv

2、将 /usr/lib/python2.x/site-packages 中与 libxml2 和 libxlst 相关的文件全部拷贝到 /path/to/newenv/lib/python2.x/site-packages 中。

3、将 buildout 的 buildout-cache/eggs 中的 eggs 都拷贝到 /path/to/newenv/lib/python2.x/site-packages 中,这样可以省去下载安装很多依赖包的时间。

4、开始安装 repoze.bfg:
官方文档:http://static.repoze.org/bfgdocs/narr/install.html
$easy_install -i http://dist.repoze.org/lemonade/dev/simple repoze.bfg
这样稍等片刻就装好了。
其中安装的 PasterScript 包将生成一个命令 /path/to/newenv/bin/paster
在 virtualenv 虚拟环境下使用这个命令就可以创建各种项目了。

5、创建一个 repoze.bfg 项目:
官方文档:http://static.repoze.org/bfgdocs/narr/project.html
只需:
$paster create -t bfg
按照提示输入项目的名称,比如 mybfg
稍等片刻就创建了一个名字为 mybfg 的 repoze.bfg 项目。
运行这个新建的项目:
$cd mybfg/
$paster serve mybfg.ini
稍等片刻即可按照初始设置运行该项目。

6、使用 setup.py 将这个新建项目作为开发中的一个包
$python setup.py develop
这其实是新建一个 /path/to/newenv/lib/python2.x/site-packages/mybfg.egg-link 的文件,该文件的内容只有两行,第1行就是这个新建项目所在的绝对路径,第2行是一个点号。

其他 repoze 的项目比如 repoze.zope2,repoze.plone,repoze.grok 的项目我想应该都可以使用这个方法来创建和运行。
 
2009年01月01日 星期四 18:47
lxml 这个东西比较奇怪,在 ubuntu 上装了了几次,最近终于把它装上了。
要按照官方的安装说明来做:
http://codespeak.net/lxml/installation.html
不然总是出现gcc编译的问题。
当然首先要有 Python :You need Python 2.3 or later.
然后是需要:You need libxml2 and libxslt, in particular:
使用:$sudo apt-get install libxml2 libxml2-dev 安装 libxml2
使用:$sudo apt-get install libxlst1 libxslt1-dev 安装 libxslt
安装 python-libxml2 和 python-libxslt1 :$sudo apt-get install python-libxml2 python-libxslt1
然后就可以使用:$sudo easy_install lxml 来安装最新的 lxml 了。我装的是最新版本:lxml 2.2beta1

在 Cygwin 上安装也一样,直接选择安装 libxml2, libxml2-devel, libxlst, libxlst-devel, python-libxml2, python-libxslt 包安装,
然后 $sudo easy_install lxml 就可以装上了。

---------------------------------------------------------------------------------------
2009,02,28
刚发布不久的 zope 3.4.0 里 lxml 似乎回到了 1.3.6 。
详细页面: http://download.zope.org/zope3.4/
其中 lxml 相关说明:

lxml

1.3.6 (2007-10-29)

Bugs fixed

  • Backported decref crash fix from 2.0
  • Well hidden free-while-in-use crash bug in ObjectPath

Other changes

  • The test suites now run gc.collect() in the tearDown() methods. While this makes them take a lot longer to run, it also makes it easier to link a specific test to garbage collection problems that would otherwise appear in later tests.

=======================
2009,04,03
1.其实不需要安装 python-libxml2 和 python-libxslt1
2.注意 ubuntu 源中 libxslt1 现在由 libxslt1.1 替代了。
3.最后的总结:只需要把 libxml2 和 libxslt 的开发包装上即可。
easy_install 或者直接 buildout 的时候在第一次安装 lxml 时会花些时间。
 
2009年01月01日 星期四 18:28
方向已经指向了这个新生的好东西:repoze.bfg
不过目前使用 buildout 的方法会涉及到两个库的编译,libxml2 和 libxslt 。所以学习使用默认的 virtualenv 来构建虚拟开发环境,学习之下发现确实如 virtualenv 官方文档对 buildout 所说的 "As a declarative system, it is somewhat easier to repeat and manage, but more difficult to experiment with. zc.buildout includes the ability to setup non-Python systems (e.g., a database server or an Apache instance)." ( http://pypi.python.org/pypi/virtualenv/1.3.2 ),比 buildout 简单得多。

如果你想不跟使用原来系统中的 /usr/lib/python2.x/site-packages 的包的话,你可是使用:

$virtualenv --no-site-packages /path/to/newenv

即可创建一个不使用原来系统python库的虚拟开发环境 /path/to/newenv .
如何进入这个环境呢?只需要一个命令:

$source /path/to/newenv/bin/activate

你会发现在 shell 的 ps1 前面多了一个 (env) 的前缀,这表示现在工作在虚拟开发环境下。在这个虚拟开发环境下的操作都不会影响到原来的系统。比如通过 easy_install 安装 python 包,将安装到 /path/to/newenv/lib/python2.x/site-packages 中。
退出这个环境只需要执行:

$deactivate

即可退出

我喜欢使用这样的环境,我觉得对于产品开发部署非常有用。

---------------------------------------------------------
2009,02,28

最后还是回到了 zc.buildout , 它太强大了!
virtualenv 没有 zc.buildout 来的灵活。
我想 virtualenv 可能比较适合于较单一的 产品部署。而 zc.buildout 通吃。
 
2008年12月23日 星期二 13:11
我在 Vista 中安装了 Cygwin ,然后从源码安装了 Python 2.4.5 ,默认安装路径是 "/usr/local" 。 于是总是遇到很奇怪的问题,后来发现大部分是由于绝对路径的问题引起的。比如刚才在进行 buildout 开始安装 parts 的时候,出现 "ValueError: too many values to unpack" 的错误, Traceback 的最后部分是:

File "/opt/buildout-cache/eggs/zc.buildout-1.1.1-py2.4.egg/zc/buildout/easy_in
stall.py", line 77, in _get_version
    pystring, version = version.split()
ValueError: too many values to unpack

觉得很奇怪,于是 $vi /opt/buildout-cache/eggs/zc.buildout-1.1.1-py2.4.egg/zc/buildout/easy_install.py ,在第77行前打印一下version:print version

结果发现在 buildout 开始安装 parts 之前出现:

/bin/sh: /usr/bin/python2.4: No such file or directory

晕!就是找不到 /usr/bin/python2.4 。一样的,再加上一个软链接:

$ln -s /usr/local/bin/python2.4.exe /usr/bin/python2.4

再次 buildout ,没有再出现这个问题了。

PS:可能是我的 "~/.buildout/default.cfg" 文件设置了 "executable = /usr/bin/python2.4" 的原因。
 
2008年12月15日 星期一 12:53
接下来我要尝试在 Cygwin 上运行 zope . 由于 zope3 基本上已经组件化,zope 官方很久没有更新 zope3 的集成安装包了,反而将 zope3 的很多功能添加回 zope2 中,并不断地更新,所以当前还是应该尝试使用 zope2 。

1、首先解压缩 zope 官方网站上最新的 zope 2.11.2 源码包,然后按照 doc/INSTALL.txt 安装,

$./configure
$make
$make install

默认安装在 /opt 目录下的 Zope-2.11 目录中。

2、创建一个新的 Zope 2.11 实例
运行

$/opt/Zope-2.11/bin/mkzopeinstance.py

根据提示依次输入目录地址(路径中的实例名地址,比如我在当前目录下生成一个实例直接输入该实例的名称"newtest")、管理员名、管理员密码、确认管理员密码。然后一个 zope2.11 的实例就生成了。

3、运行这个新建的实例

$cd newtest

然后,可以使用命令启动运行该实例

$bin/zopectl start

而若想在控制台上监视运行情况则应该运行

$bin/zopectl fg

不过我都失败了,Traceback 显示出错的信息末行是:

TypeError: Acquirer.__new__(Application) is not safe, use Persistence.Persistent.__new__()

看上去应该是 ZODB 的问题。

此时无计可施,因为没有暂时网络。按照上面的顺序又按照默认安装了个 Zope 2.10.7 ,这回可以跑起来了。马上在浏览器上输入

http://localhost:8080

可以正常访问了,输入管理地址

http://localhost:8080/manage

site error! 依然跟 2.11.7 一样的出错信息。晕!

将 var 目录下的 数据全部删除,再启动实例,发现可以运行,在浏览器上输入

http://localhost:8080

可以正常访问,但提示没有创建账户。

再次删除 var 目录下的数据,按照

$bin/zopectl adduser 用户名 密码

添加管理员,再启动实例,一样的报错。。。。

看来真的是 ZODB 的问题。

此时已经好困,准备睡觉了。

--2008,12,14


----------------------------------------------
2009,02,22 更新:
Cygwin中的DAEMON程序

 
2008年12月15日 星期一 12:51
目前在 Fedora 10 官方仓库中找不到 Python 2.5 以外的版本,而基本上基于 Python 2.4 的 Zope 和 Plone 也几乎没能找到。看来除了源码安装无他了。
但考虑到目前大多数时候还是要在 Windows 下调试的情况,我决定在 Windows 上尝试。其实我的 Windows Vista 上已经安装了 Python2.4/2.5/2.6/3.0 ,然后学了某位同学的做法,分别为各个版本写了 .bat 脚本,这样可以临时设置 Path 使用需要的 Python 版本,比如我的 py24.bat (目前放在 C:\Windows 目录下)是这样写的:

@echo off
set path=%path%;D:\apps\Python24;D:\apps\Python24\Scripts
python.exe %*

今天我想安装传说中的 repoze ,进入 cmd ,运行 py24 命令,当然我们现在不需要马上在 Python 命令行解析器上干活,Ctrl+Z ,在按 Enter ,这样就退出了 Python 2.4 解析器。

然后按照官方的提示:
http://repoze.org/quickstart.html

1、首先使用setuptools安装 virtualenv :

easy_install virtualenv

官方上提示可以使用 zc.buildout 来安装 repoze.plone 和 repoze.zope2 ,但我还是想试试 virtualenv ,因为 virtualenv 能安装所有的 repoze 程序,比如我想瞧瞧 repoze.grok 是怎样的。

2、执行

D:\mydevel\repoze>virtualenv --no-site-packages newenv

在当前目录下创建一个叫 newenv 的虚拟环境。然后

D:\mydevel\repoze>cd newenv

该虚拟环境的下已经生成了2个文件夹,Lib 和 Scripts 文件夹。

3、开始安装 repoze.grok 了,运行命令:

D:\mydevel\repoze\newenv>"Scripts/easy_install" -i http://dist.repoze.org/grok/latest/simple repoze.grok

类似 Python 的 PYPI 系统,easy_install 会根据依赖关系在 http://dist.repoze.org 查找并下载和安装相关的包。
由于我的 Vista 上没有安装 Visual Studio 2003 ,所以下载完无法安装,但有一个提示,如果是在 Cygwin 中安装的话可以使用 -c mingw 来尝试使用 mingw 进行编译安装。
如果不是没有编译器,我想是可以装上的,其他的 repoze 程序安装是一样的。

然后我就想装个 Cygwin 来玩玩。于是从 Cygwin 官网上下载安装程序,选了香港的镜像,速度10多20KB,按照默认包选择安装,一会就装好了。

1、首先得安装个 Python 2.4 。
再次运行 Cygwin ,在包选择的地方查找 Python ,很不幸,只有 Python 2.5 。看来还是得从源码安装。从 Python 官网下载个 Python 2.4.5 的源码包。解压缩,运行 $./configure ,看到好多内容刷过屏幕,反正是花了很多时间,配置完了之后运行 $make ,却提示没有这个命令,我晕,看来还要安装 make ,再次运行 Cygwin 安装程序,选择 make 包,装完了之后,终于可以 $make 了,当然这回更多内容刷过屏幕,但是 make 一会又停住了。哦,提示还没有 gcc 编译器。好的,再再次运行 Cygwin 安装程序,把 gcc 也安装上。终于 $make 通过。然后就 $make install 。好,现在把 Python 2.4.5 装上了。

2、安装 setuptools 。
在 PYPI 下载 setuptools 的源码包,解压缩,运行

$python setup.py install

一阵刷屏,停住,提示缺少 zlib 模块。想起以前在 Ubuntu 下也遇到这个情况,那个时候是因为我在安装 Python 2.4 的时候使用了 --prefix 重新定义安装路径然后安装完的 Python 找不到系统中的 zlib 模块所致。现在我就知道了,需要在 Cygwin 中添加 zlib 。添加完 zlib 到 Cygwin 之后,直接运行 $python setup.py install 还是提示没有找到 zlib 模块。看来需要重新编译 Python 2.4 ,于是将 Python 2.4.5 重新编译一遍,在 $make 的时候就看到添加了 zlib 模块的信息。编译完 Python 2.4.5 后安装 setuptools 就很顺利了。

3、接着安装 virtualenv 。
这个更加简单,直接在 PYPI 下载个 virtual 的 Python 2.4 的 egg (比如我下载了 virtualenv-1.3.1-py2.4.egg),然后

$easy_install virtualenv-1.3.1-py2.4.egg

居然提示找不到 /usr/local/bin/python2.4 ,马上给 Python 2.4 再添加一个软连接:

$cd /usr/locale/bin
$ln -s python2.4.exe python2.4

接下来很快就把 virtualenv 装上了。

4、开始一个新的 virtualenv 虚拟环境。
一样的,运行

$virtualenv --no-site-packages newgrok

在当前目录下新建一个叫 newgrok 的 virtualenv 虚拟环境。

$cd newgrok

与在 Windows 不同,该虚拟环境的下已经生成了3个文件夹,bin ,include 和 lib 文件夹。

5、开始安装 repoze.grok ,运行命令:

$bin/easy_install -i http://dist.repoze.org/grok/latest/simple repoze.grok

虽然前面直接在 Windows 下安装时候提示说可以在 Cygwin 环境下使用 mingw 代替 Visual Studio 2003 作为编译器,但我们现在已经有了 gcc 编译器了,所以我认为应该不需要再安装 mingw 了,虽然我一开始就装上了。
不出意外的话,应该很快可以安装上 repoze.grok 。

但是这个时候俺困了,有空再续,再自虐。

--2008,12,13
 
2008年12月13日 星期六 14:30
该书的中文Plone电子版下载地址:http://zopen.cn/training/doc/plone-freebook
终于知道自己连最基础的东西都不懂,就在瞎搞。
我想,我们现在在 zope3 平台上进行组件开发使用的技术应该都是从 Plone 架构那里得到启发并移植过来的。
对于基本的 zope 技术,有两个最基础的地方现在终于有些明白了:context(/here) 和 traversal.

context(/here):上下文。这是个在 zpt 中非常重要的概念,当前对象所在的 container 也就是容器?很遗憾的,我一直对 container 容器的概念不清晰,现在还是没能理解。不过 zope 中对象的层次观念及其类似文件系统的文件目录关系我还是约略有些理解了。

traversal:漫游、历遍。我简单的理解就是对 URL 请求的解析过程,虽然yong哥一直在跟我说这个东西,但我还是很懵懂。zope 将 URL 的解析分为几个部分, 最后一个部分是当前的 action ? 倒数第二个就是被action 的上下文 context 对象,使用 absolueURL 获取当前对象的绝对地址的时候一般会与这个打交道。历遍的过程中我们经常使用 @@ 来智能查找我们需要的对象,应该就是 Plone 里的那个智能历遍。

这是我初步的一些理解,可能是错误的,但希望能在深入学习的时候更加明确基础概念,使自己对 zope 对象的操作如鱼得水。呵呵
 
2008年11月29日 星期六 13:48
在 Linux 上修改 hostname 似乎是一个比较危险的做法。在执行
#hostname 新的主机名
命令之后似乎会发生很多奇怪的事情。
不久前,我们将一台 Ubuntu 服务器的 hostname 修改之后,运行很多命令都发生错误,不过后来不知道搞了啥,误打误撞,然后莫名其妙就好了。
今天我也想把我的 fedora 10 改下 hostname ,依然发生了奇妙的问题,我想应该是我的操作问题。我是这样乱搞的。在 Gnome 桌面环境下启动终端,在终端中执行
$sudo hostname 新的主机名
修改完之后我没有没有立刻重启系统,而是直接退出图形界面:按下 Ctrl+Alt+Backspace 组合键,然后系统就黑了,接下来一闪一闪。我估计是 gdm 在读取 hostname 的时候有了冲突了。于是我按下 Ctrl+Alt+F2 切换到 tty2 ,发现上面的主机名还是原来的名字,而登录提示那里显示的已是新的主机名了。我登入该 tty,看到主机名是新的主机名。于是我
$sudo reboot
重启之后,一切回归修改 hostname 之前的状态!

以前用Linuxfans论坛的MagicLinux好像就有类似问题,修改了hostname但没有效果,不知道后来解决了没有。

------------------------------------------------------
2009,02,14 更新:
Linux之hostname更正

 
     
 
 
个人档案
 
whycrying

上次登录:
6天前
加为好友
 
   
 
文章分类
 
 
 
 
Web(1)
 
 
Misc(3)
 
 
     
 
最新评论
 
     
 
好友最新文章
 
     
 
最近访客
 
 

ycgvsszq

eeevictor

lbimba

renewjoy

dangwy

yexin218

feel与你同行

miss0759
     
 
订阅我的空间
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2009 Baidu