异想天开

What's the true meaning of light, Could you tell me why

python的package

日期:2014-12-23 15:17:19
  
最后更新日期:2014-12-23 20:03:38
【水文记录】
python解释脚本前,会将当前目录,PYTHONPATH环境变量目录,python安装目录统一添加到sys.path变量里面。后续查找package就在这些目录下找。为了区分一般目录与package,package目录下需要一个__init__.py文件。__init__.py文件可以为空,也可以包含一些变量定义,当然也可以加一些import语句。
自己用package的方式来组织项目代码时,可以在python代码里面首先添加包含package目录: [code lang="cpp"]
import sys
sys.path.append('/home/bianzhuang/test/')
[/code]
注意test目录才包含package的目录,test目录结构如下:
[code lang="cpp"]
_python_package
--_python_package/echo.py
--_python_package/__init__.py
[/code]
echo.py定义了一个test_cho函数:
[code lang="cpp"]
def test_echo():
print "hello world\n"
[/code]
使用test_echo函数方式有两种:
一种是__init__.py文件为空,手工导入test_echo函数,测试代码如下:
[code lang="cpp"]
import sys
import traceback
sys.path.append('/home/bianzhuang/fhub/')
print sys.path
from _python_package.echo import test_echo
if __name__ == '__main__':
try:
test_echo()
except Exception,e:
print traceback.format_exc()
[/code]
另外一种是import语句放__init__.py文件,即:
[code lang="cpp"]
from echo import test_echo
[/code]
测试方法:
[code lang="cpp"]
import sys
import traceback
sys.path.append('/home/bianzhuang/fhub/')
print sys.path
import _python_package
if __name__ == '__main__':
try:
_python_package.test_echo()
except Exception,e:
print traceback.format_exc()
[/code]