首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

理解unittest测试框架(一)从入口说起

启动方式 unittest的启动方式有两种 python -m unittest xxx.xxx unittest.main() 第一种方式是以命令行的方式,也是我们正常执行用例和调试的时候使用的命令。...例如,新建一个文件夹叫testmodule,在文件夹中创建__init__.py, __main__.py两个文件,在__main__.py中添加如下代码. print "test" 然后在文件夹上层执行...第二点 使用-m的方式执行之后,python会把当前路径加到sys.path中 这点其实非常关键,在测试过程中,经常遇到的问题就是在pycharm运行的好好的,但是用命令行执行的时候就经常报错包不存在。...__init__.py |____case | |______init__.py | |____test.py 在case中的test.py中引用了util下面的sum方法。...如果直接执行python xxx.py则会将这个文件的路径添加到sys.path中,这个细微的区别不注意,就会导致经常出现python执行的时候经常找不到包。

82320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文搞懂 Python 的模块和包,在实战中的最佳实践

    然而为了兼容性,和很多时候确实需要 __init__.py 文件,所以建议将此文件,始终新建放入要作为包的目录中,这也是用 PyCharm 创建包的默认操作。...在 Windows 中,可以在命令行中使用 set PYTHONPATH=项目绝对路径 命令,设置此环境变量。...使用 python -m xxx.xxx.模块名 的运行方式,测试模块【不推荐】 在包中的模块代码,使用相对导入的方式,运行时不要采取 python xxx/xxx/xxx.py 脚本运行的方式,而是采取模块运行的方式...但是,此方案一是有违正常 Python 程序运行的习俗,二是在 PyCharm 中的某个模块文件,直接右键运行时,是默认采取 python xxx/xxx/xxx.py 的方式执行的,所以此方案不推荐。...而通常情况下,我们自己写的包和模块,仅仅在本项目内使用,完全可以借助于 PYTHONPATH 环境变量,使用绝对导入来引用本地任意模块,使用相对导入在 __init__.py 中引用包中的模块。

    1.6K41

    上手Python之包

    ` ③ 模块内代码如下 Pycharm中的基本步骤: [New]      [Python Package]    输入包名    [OK]     新建功能模块(有联系的模块) 注意:新建包后...,包内部会自动创建`__init__.py`文件,这个文件控制着包的导入行为  导入包 方式一: import 包名.模块名 包名.模块名.目标  方式二: 注意:必须在`__init__.py`文件中添加...包就是一个文件夹,里面可以存放许多Python的模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。 2. __init__.py文件的作用?         ...在Python程序的生态中,有许多非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如: 科学计算中常用的:numpy包 数据分析中常用的:pandas包 大数据计算中常用的:pyspark...但是由于是第三方,所以Python没有内置,所以我们需要安装它们才可以导入使用哦。 安装第三方包 - pip 第三方包的安装非常简单,我们只需要使用Python内置的pip程序即可。

    33830

    施工专题第11篇:Python 包和模块使用总结

    每个package里都有一个__init__.py文件。 使用这种结构带来什么便利?每个模块间的变量又该如何引用?里面的__init__.py起到什么作用?下面一一解答。...如第1小节中的Animal类,它的完整名称实际为:animals.animal2.Animal,这样在使用Animal等类时,导入方法是下面这样: from animals.animal2 import...同时还可以为它增加其他功能。 因为在导入一个包时实际上导入它的__init__.py文件,利用此特性,可以在__init__.py文件中批量导入多个模块都在公用的模块,而不再需要一个一个的导入。...import sys import abc 在使用这些内置等模块时,首先导入包: import animals # 导入包 在调用time模块时,必须使用包名+模块名的方式引用: def recordTime...4 解决找不到模块的问题 我们知道Python中使用import导入需要的包,然而平时使用像vscode, pycharm这类ide时,经常出现找不到包的问题,错误信息如下: Exception has

    66330

    2018年10月5日python相对引入和绝对引入详解

    ,结果就找不到这个对应的模块了,下面这种方式就是错误的方式 import plane.tools.hello_vars 使用import方式引入相应的模块之后,可以使用如下的方式操作引入的模块中的数据:...终端中输入: python -m direct.main 包和普通文件夹的区别: 包中一定要有一个__init__包声明文件 如何创建一个包: 可以在pycharm中右键->new->python package...同时也给我们提醒,最好不要以相对的方式直接引入整个包,那样你还要在__init__.py中定义你要用到的该包中的哪些内容,比较麻烦,还不如你直接引用的时候就指定使用包中的哪个模块或者哪个模块的哪个变量/...下面两种相对引入方式不需要在包的__init__中定义任何东西就可以使用引入的包内的数据,在pycharm终端中使用命令 : python -m direct.main运行 相对引入引入包中的模块 引入包内的模块不能使用...__.py中定义要使用包中的哪些数据,后边才能正常使用引入的包,否则会报错找不到包下的那个模块 ?

    87420

    python 学习笔记(8)——python绝对路径相对路径

    相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。     ..../ 表示当前文件所在的目录(可以省略) / 表示当前站点的根目录(域名映射的硬盘目录) 在Python中可以验证一下上述的标识方法: 测试的目录结构: import os path1=os.path.abspath...\Sphinx-1.6.3-py3.5.egg' ] 可以在python 环境下使用: .   ...文件,里面可以写import时执行的代码,当然也可以留空就可以. import home.a.b 方法三: from home.a.b import *   前提 home、a中都包括__init__....– mod2.py – test1.py   若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用

    5.5K40

    python历险记之模块导入

    xxx 为包/模块,yyy 可以为子包、模块、模块内的内容(类、方法)等。这种方式结合__init__.py,可以让包和模块导入更简单,便于管理。 导入方式 相对路径 使用 . 或者 .....使用 import xxx 方式 示例一 在 a_module_one.py 中引入上级、同级、下级包中模块。...使用 from xxx import yyy 方式 示例二:在包的__init__.py 中 import 进需要的包内含有的子包和模块 # my_project/package_a/__init__....推荐使用 from xxx imoprt yyy 的方式来引入。结合__init__.py文件,引入包时,可以控制引入粒度,不需要引入无用的子包和模块。...from xxx import yyy 方式说明 若在包 package_a 的 __init__.py 文件中引入了其下具体的类、函数,则在引用 pakcage_a 的包中可以直接引用;若没有,则 xxx

    21610

    trick(二)、if __name__ == ‘__main__‘

    假设我们有一个包a,包的结构如下: a ├── b │ ├── c.py │ └── __init__.py └── __init__.py 在包a中,文件c.py,__init__.py,__...init__.py的内容都为: print(__name__) 当一个.py文件(模块)被其他.py文件(模块)导入时,我们在命令行执行 python -c "import a.b.c" 输出结果:...由此可见,__name__可以清晰地反映一个模块在包中的层次。...4.1、运行Python程序的两种方式 python xxx.py,直接运行xxx.py文件 python -m xxx.py,把xxx.py当做模块运行 假设我们有一个文件run.py,内容如下: import...使用python package运行,输出结果: __main__ ['package', ...] 5、总结 总结一下 当加上-m参数时,Python会把当前工作目录添加到sys.path中;而不加-

    20320

    windows环境下,如何在Pycharm下安装TensorFlow环境「建议收藏」

    文章目录 目录 前言: 1.安装Anaconda 2.安装Tensorflow 3.其他问题 4.在pycharm中使用tensorflow 目录 前言: 最近由于工作需要要使用TensorFlow,所以只能狂补相关的知识...(3)在Anaconda Prompt中启动tensorflow环境: activate tensorflow 注:当不使用tensorflow时,关闭tensorflow环境,命令为:deactivate...(5)测试tensorflow 在Anaconda Prompt中启动tensorflow环境,并进入python环境。...这类问题(pip安装完包之后再去引用报错:找不到执行模块)一般是由于版本冲突引起的。所以要考虑调整python或者tensorflow的版本。...4.在pycharm中使用tensorflow 习惯了使用PyCharm来开发,配置如下: 新建工程后在 File-Setting–Project Interpreter选择tensorflow下的

    1.6K20

    python 模块定义、导入、优化

    模块: 在Python中,一个.py文件就称之为一个模块(Module)。 它是实现了某个功能的代码集合。...__.py文件) 导入包的本质: 去执行包目录下的__init__.py文件 使用pycharm编辑器,新建一个包package_test 编辑__init__.py文件 print('from the...,就会找下一个元素,直到所有的目录都还找不到的话,就报错 ModuleNotFoundError: No module named 'xxx' 为了解决这个问题,需要加一个路径,必须要包含需要导入模块的路径...为了解决这个问题,就是在导入模块的时候,不让它找就可以了 import module_test 改成 from module_test import test 就可以了。...logger() 执行输出 in the test in the logger 这种方法,可以使代码执行的更快 为了避免函数重名,可以在导入的时候,起别名 from module_test import

    1.6K10

    Python 绝对路径引用

    问题: Python开发时经常出现找不到import对象的问题,ImportError: No module named xxx,一般的原因不外乎 未安装对应依赖 引用对象的文件夹下缺失 __init_..._.py文件 由于通过相对路径的加载,导致找不到object 解决方法 针对原因1和2通过安装依赖和添加__init__.py文件即可。...假定文件结构如下: project: |__ src/ |__ main.py |__ common/ |__ utils.py 在main.py中引用utils.py...common.utils import * if __name__ == "__main__": print(os.path.dirname(__file__)) 在文件结构复杂的项目中,...相对路径的引用存在找不到引用对象的可能,为此修改为绝对路径引用,示例如下: # -*- coding=utf-8 -*- import os import sys # 绝对路径的import sys.path.append

    2.4K30

    Python 实战项目解决循环依赖问题

    (2) 强制指定实例化顺序# 可以在整个项目的根模块中的 __init__.py 中将所有子模块依赖一遍,调整可能出现循环依赖的顺序,就可以避免后期模块间依赖时产生不可预知的循环依赖问题。...也可以在模块中提供一个 init 方法,在需要的地方手动控制实例化顺序,避免导入时意外的循环依赖。...总结# Python 模块间可以随意引用,但是必须注意实例化的前后顺序,否则就会出现这种循环实例化问题,让人摸不着头脑。...Python 循环导入(依赖) Python导入循环方法 python中的循环引用 https://asciiflow.com/#/ Python模块的交叉引用(导入循环)问题分析 注:本作品采用 知识共享署名...-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    23130

    Python 实战项目解决循环依赖问题

    (2) 强制指定实例化顺序# 可以在整个项目的根模块中的 __init__.py 中将所有子模块依赖一遍,调整可能出现循环依赖的顺序,就可以避免后期模块间依赖时产生不可预知的循环依赖问题。...也可以在模块中提供一个 init 方法,在需要的地方手动控制实例化顺序,避免导入时意外的循环依赖。...总结# Python 模块间可以随意引用,但是必须注意实例化的前后顺序,否则就会出现这种循环实例化问题,让人摸不着头脑。...Python 循环导入(依赖) Python导入循环方法 python中的循环引用 https://asciiflow.com/#/ Python模块的交叉引用(导入循环)问题分析 注:本作品采用 知识共享署名...-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    40220

    windows版TensorFlow最优安装,使用AVX2指令集

    通常我们运行TensorFlow会报告如下信息,意思是你的CPU支持AVX2指令集,但TensorFlow的二进制版本没有使用 2019-02-14 15:44:41.989265: I T:\src\...,在我的笔记本上大概要3-4小时,忙活完了一天都快过去了,安装后发现我的编译参数设置不对,还要重新编译,崩溃 幸好发现一个好东西,省去了这些麻烦,这个网站编译好了各种版本的TensorFlow,下载就可以使用...https://github.com/fo40225/tensorflow-windows-wheel 我使用的python 3.6,需要下载下面的版本,注意要使用avx2版本 tensorflow_gpu...) cuda需要使用10.0.X cudnn需要使用7.3.X (X尽量选大的版本,具体安装过程就不详细说了) 可以说这种安装办法是目前最好,最省时间的办法,充分利用cpu的指令集,避免的cuda和cudnn...用pip网络安装TensorFlow,一是没有cpu优化,二是cuda和cudnn版本不清楚,会出现大量问题花大量时间 问题 1.msgpack版本问题 安装Keras的过程中,遇到下面错误,找不到1.21.8

    73020

    小问题大隐患:如何正确设置 Python 项目的入口文件?

    但如果对这个问题进一步分析,可以看到更多问题。 在我以前的文章:为什么Python代码能运行但是PyCharm给我画红线?中,我讲到了工作区(Workdir)对代码的影响。...在工作区里面就只有这一个start.py文件,所以当然找不到lib文件夹。...from utils.abc import time_format 你根本不可能出现需要导入父文件夹中的某个模块的情况。 只有工具脚本,才需要单独使用一个文件夹来存放,然后调用父文件夹中的其他文件。...这个时候,你可以把这个包的__init__.py当做它的入口文件。...在项目根目录留下一个example.py文件,用来演示如何调用这个包。而这个包本身的代码,是在一个叫做gne的文件夹中的。这个gne文件夹是一个包,它的入口文件在__init__.py中。

    2.5K11

    TensorRT安装及使用教程「建议收藏」

    但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。...当你的网络训练完之后,可以将训练模型文件直接丢进 TensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow 等),如下: 可以认为 TensorRT 是一个只有前向传播的深度学习框架...,这个框架可以将 Caffe,TensorFlow 的网络模型解析,然后与 TensorRT 中对应的层进行一一映射,把其他框架的模型统一全部转换到 TensorRT 中,然后在 TensorRT 中可以针对.../sample_int8 mnist 3 使用流程 在 /TensoRT-5.0.2.6/samples/python 文件夹下有很多 python 的例子,我们以第一个 end_to_end_tensorflow_mnist...的例子为例,描述 TensorRT 的使用流程,在 README.md 文件里也说得很明白了 3.1 安装依赖 需要安装好 numpy、Pillow、pycuda、tensorflow 等环境,如果都有可以跳过

    13.2K41

    在windows10机器上安装部署人脸识别安全帽识别项目笔记

    2.Pycharm的安装配置 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成...在服务器上安装PyCharm其实也算是多此一举,但是主要也是有个小插曲导致下载了PyCharm: 用cmd进入项目之后执行程序:python xxx.py 之后会报 ImportError: No module...下载PyCharm: 从官网https://www.jetbrains.com/pycharm/download/下载PyCharm安装程序,在该页面选择你电脑所对应的系统(Windows、macOS...之后在代码中:import face-recognition就不会再报错了。...Anaconda并不是必需,可以使用,也可以不使用 Cudnn的版本我这里提示的是Cudnn6,大家看提示安装 这一篇博客其实就是这一次远程安装部署的一个笔记,有些部分可能说的不是很细致。

    1.5K10
    领券