1.把自己编写的python模块添加到PYTHONPATH上
要想让python解释器找到自己编写的模块,则该模块必须PYTHONPATH上,否则在导入该模块时会出现找不到该模块的错误,因此必须把所需要的模块的路径添加到PYTHONPATH(一般情况下是把lib/python2.6/site-packages添加到PYTHONPATH)。具体做法如下:
a. 假设所需要的python模块(或包)位于/home/lxc/software/program/python
b. 把/home/lxc/software/program/python添加到PYTHONPATH,语法与shell里面的PATH一样:
export PYTHONPATH=$PYTHONPATH:/home/lxc/software/program/python
现在就可以使用getopt_exam.py模块了,示例如下:
$python
>>>import getopt_exam
>>>getopt_exam
version v1.0
>>>
注意:当第一次导入getopt_exam时,getopt_exam.py就会被编译为字节码,此时该目录下就会出现一个名为getopt_exam.pyc的文件,因为*.pyc格式比*.py格式导出的速度更快,如果更新了getopt_exam.py则必须把它之前被编译的字节码getopt_exam.pyc删除,否则在使用这个模块的时候就不会看到更新的部分,因为它是从第一次生成的getopt_exam.pyc里面导出来;我们必要对新的getopt_exam.py脚本编译成*.pyc文件或是直接把getopt_exam.pyc(第一次生成)删掉,python解释器会自动没有没有相应*.pyc的*.py文件生成相应的*.pyc文件(基本规则:当导入一个模块时,python解释器先把*.py文件编译成*.pyc,然后在从*.pyc里面导出)。
2.在python脚本里面使用那些不再PYTHONPATH上的第三方包或是自己编写的模块
以使用/home/lxc/software/program/python/getopt_exam.py为例。
$python
>>>import sys
>>>sys.path.append(“/home/lxc/software/program/python”)
>>>import getopt_exam
>>>getopt_exam.version()
version v1.0
>>>
3.使用easy_install来自动安装python包
以安装networkx为例,把networkx安装到路面/home/lxc/software/program/python/site-packages下
a.先将/home/lxc/software/program/python/site-packages添加到PYTHONPATH;
export PYTHONPATH=$PYTHONPATH:/home/lxc/software/program/python/site-packages
b.安装版本号大于1.1的包
easy_install-2.6 -d /home/lxc/software/program/python/site-packages "networkx>1.1"
4.使用EPD已经安装好的networkx包
export PYTHONPATH=$PYTHONPATH:/home/lxc/software/INSTALL/epd-6.2-2-rh5-x86/lib/python2.6/site-packages
5.更新python包
easy_install-2.6 -U -d /home/lxc/software/INSTALL/epd-6.2-2-rh5-x86/lib/python2.6/site-packages "networkx>1.1"
完成之后在/home/lxc/software/INSTALL/epd-6.2-2-rh5-x86/lib/python2.6/site-packages目录下会出现一个文件夹networkx-1.4-py2.6.egg,不过现在还不能在EPD的命令行里面直接使用更新后的版本(networkx-1.4);要使用更新的版本,可以把以前安装的networkx直接删掉,或是”mv networkx networkx.bk”。
注意/home/lxc/software/INSTALL/epd-6.2-2-rh5-x86/lib/python2.6/site-packages必须首先被添加到PYTHONPATH