Sunday, May 25, 2008

A PDFLib for Python

I plane to development a report system in my recent project .The question is I need a fixable and reliable PDFLib.I searching and searching... in the end I found reportlib I think it' what I want. http://www.reportlab.org/

Thursday, May 22, 2008

site -- Site-specific configuration hook(past from python site)

This module is automatically imported during initialization. The automatic import can be suppressed using the interpreter's -S option.

Importing this module will append site-specific paths to the module search path.

It starts by constructing up to four directories from a head and a tail part. For the head part, it uses sys.prefix and sys.exec_prefix; empty heads are skipped. For the tail part, it uses the empty string and then lib/site-packages (on Windows) or lib/python2.5/site-packages and then lib/site-python (on Unix and Macintosh). For each of the distinct head-tail combinations, it sees if it refers to an existing directory, and if so, adds it to sys.path and also inspects the newly added path for configuration files.

A path configuration file is a file whose name has the form package.pth and exists in one of the four directories mentioned above; its contents are additional items (one per line) to be added to sys.path. Non-existing items are never added to sys.path, but no check is made that the item refers to a directory (rather than a file). No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import are executed.

For example, suppose sys.prefix and sys.exec_prefix are set to /usr/local. The Python 2.5.2 library is then installed in /usr/local/lib/python2.5 (where only the first three characters of sys.version are used to form the installation path name). Suppose this has a subdirectory /usr/local/lib/python2.5/site-packages with three subsubdirectories, foo, bar and spam, and two path configuration files, foo.pth and bar.pth. Assume foo.pth contains the following:

# foo package configuration

foo
bar
bletch

and bar.pth contains:

# bar package configuration

bar

Then the following directories are added to sys.path, in this order:

/usr/local/lib/python2.3/site-packages/bar
/usr/local/lib/python2.3/site-packages/foo

Note that bletch is omitted because it doesn't exist; the bar directory precedes the foo directory because bar.pth comes alphabetically before foo.pth; and spam is omitted because it is not mentioned in either path configuration file.

After these path manipulations, an attempt is made to import a module named sitecustomize, which can perform arbitrary site-specific customizations. If this import fails with an ImportError exception, it is silently ignored.

Note that for some non-Unix systems, sys.prefix and sys.exec_prefix are empty, and the path manipulations are skipped; however the import of sitecustomize is still attempted.

Tuesday, May 6, 2008

Our wedding day

Today is our wedding day,yes it's 6th May,my first wedding day,at before,we decided to go to the cinema,because I hear about that the "Iron Man" is a realy good moive.but when we arrived the cinema,all seats taken.what a shame.In the end my wife and I have a diner in a restaurant,then we went to home.although we can't saw a movie,but we still happy because we love each other.

Thursday, May 1, 2008

How the Decimal is in Python

In python,if you type this:
>>0.1+0.1+0.1-0.3
you will get
>>5.5511151231257827e-017
The reason is cause of your hardware.Then how should we do then we can get a zero?Use Decimal,
>>from decimal import Decimal
>>Decimal(0.1)+Decimal(0.1)+Decimal(0.1)-Decimal(0.3)
>>Decimal(0)
Great,isn't it?
Then consider another condition,if this:
>>1/3
>>0.33333331
but sometime for example we only want to got fist four precision,how to do it?
>>decimal.getcontext().prec=4
>>Decimal(1)/Decimal(3)
Decimal(0.3333)

Wow...fantastic:)

Division in Python

Today is quesiton is "Division" in Python.Usually,if you want do some divisioni opration in python for example:
>>1/2
>>0
As you can see,you will get a result 0,but not 0.5. That is Python will return an integer in default.if you want to get a result 0.5,there are two ways you can do it:
first:
>>1.0/2
>>0.5
second:
>>from __future__ imort divisions
>>1/2
>>0.5
if you want return an integer.you should use "//"
>>1//2
>>0

My labor day

Today is first May,Labor day.I sleep untill 12 o'clock AM.When I wake up,I hear about that my wife was sick.She has loose bowels.So I must look after her.I make the lunch and dinner.Guess what?I stay at home whole day.I spend my whole day for take care of my wife.Now,she goes to bed and read book.So,this is my firt May vacation.Wow...