相关文章推荐
沉稳的生姜  ·  Python ...·  14 小时前    · 
乐观的针织衫  ·  Python 用“*” ...·  14 小时前    · 
冷静的小刀  ·  python ...·  12 小时前    · 
性感的黄豆  ·  python ...·  2 小时前    · 
斯文的数据线  ·  03 ORA系列:ORA-00942 ...·  1 年前    · 
越狱的大脸猫  ·  php get next key in ...·  1 年前    · 

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