首先说明一点:网上大部分直接把HTMLTestRunner.py模块拷贝到/Library/Python/2.7/site-packages目录下是不行的,具体操作步骤如下:

1、下载HTMLTestRunner.py文件

下载地址http://tungwaiyip.info/software/HTMLTestRunner.html

2、python在mac下第三方非标准库模块存放位置为/Library/Python/2.7/site-packages

查看方式:

$ python
Python 2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path

此时导入HTMLTestRunner模块会报错

3、新建文件夹HTMLTestRunner,把HTMLTestRunner.py文件移动到文件夹内,并新建一个__init__.py文件,此时HTMLTestRunner文件夹就被python解释器认为是可引用的模块

4、将HTMLTestRunner文件夹拷贝到路径 /Library/Python/2.7/site-packages/下即可

5、在python交互模式下导入HTMLTestRunner不报错说明导入成功



知识扩展:

要弄明白这个问题,首先要知道,python在执行import语句时,到底进行了什么操作,按照python的文档,它执行了如下操作:
1步,创建一个新的,空的module对象(它可能包含多个module);
2步,把这个module对象插入sys.module
3步,装载module的代码(如果需要,首先必须编译)
4步,执行新的module中对应的代码。

在执行第3步时,首先要找到module程序所在的位置,搜索的顺序是:

当前路径 (以及从当前目录指定的sys.path),然后是PYTHONPATH,然后是python的安装设置相关的默认路径。正因为存在这样的顺序,如果当前路径或PYTHONPATH中存在与标准module同样的module,则会覆盖标准module。也就是说,如果当前目录下存在xml.py,那么执行import xml时,导入的是当前目录下的module,而不是系统标准的xml

了解了这些,我们就可以先构建一个package,以普通module的方式导入,就可以直接访问此package中的各个module了。python中的package必须包含一个__init__.py的文件。

                                                                                                              ------以上引用“老王python” 


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐