当前位置:   article > 正文

Python中模块的搜索路径实例讲解_from hivetask import hivetask

from hivetask import hivetask
2018年3月1日13:26:09

最近在工作的时候遇到一个问题,我首先是拿到别人现成的代码,代码如下:

  1. import os,sys,re
  2. import datetime
  3. import threading
  4. import subprocess
  5. import configparser
  6. import sendmail
  7. from loggers import myLog
  8. sys.path.append(os.getenv('HIVE_TASK'))
  9. from HiveTask import HiveTask

但是当我输出'HIVE_TASK'环境变量的数值的时候,运行结果竟让为None,如下所示:

  1. #!/usr/bin/python
  2. # -*- coding:utf-8 -*-
  3. """
  4. function:本函数的功能是获取表的location
  5. """
  6. import os
  7. import sys
  8. print(os.getenv('HIVE_TASK'))
'
运行

运行结果如下:

  1. [dd_edw@BJHC-Client-144113 zhang_dd_edw]$ python3 test.py
  2. None

当时第一反应,什么情况,环境变量怎么没有,于是我改了一下脚本:

  1. import os,sys,re
  2. import datetime
  3. import threading
  4. import subprocess
  5. import configparser
  6. import sendmail
  7. from loggers import myLog
  8. from HiveTask import HiveTask

当我运行这个脚本的时候发现竟然没有报错,也就是说可以找到HiveTask这个py文件(模块),到底是怎么找到的呢?

我查看了一下模块正常的搜索路径:

  1. """
  2. function:本函数的功能是获取表的location
  3. """
  4. import os
  5. import sys
  6. for path in sys.path:
  7.     print(path)

输出结果:

  1. [dd_edw@BJHC-Client-144113 zhang_dd_edw]$ python3 test.py
  2. /home/dd_edw/zhang_dd_edw
  3. /home/dd_edw/zhang_dd_edw
  4. /software/edw/common/HiveTask
  5. /usr/local/lib/python32.zip
  6. /usr/local/lib/python3.2
  7. /usr/local/lib/python3.2/plat-linux2
  8. /usr/local/lib/python3.2/lib-dynload
  9. /usr/local/lib/python3.2/site-packages

可以看出HIVETASK这个模块应该是在/software/edw/common/HiveTask这个路径下面,但是为什么会找到这个路径呢?

我们都知道模块正常的搜索路径:

第一:内置模块当中去搜索

第二:执行文件所在的当前目录

第三:环境变量PYATHONPATH指定的路径列表中

第四:python安装的lib库中

于是我查看了一下环境变量PYATHONPATH的数值:

  1. [dd_edw@BJHC-Client-144113 zhang_dd_edw]$ echo $PYTHONPATH
  2. :/software/edw/common/HiveTask/

瞬间明白了,原来是通过PYTHONPATH--->/software/edw/common/HiveTask/----->HiveTask模块的。

后来特意问了一下,之前环境变量里面确实有那么一个环境变量HIVE_TASK,只不过后来不用了,写到了

PYTHONPATH里面去了。











声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/976964
推荐阅读
相关标签
  

闽ICP备14008679号