顶层文件:包含了程序的主要控制流程 模块文件:为顶层文件或其他模块提供各种功能性组件 模块首次导入(或重载)时,Python会立即执行模块文件的顶层程序代码(不在函数内的代码),而位于函数体内的代码直到函数被调用后才会执行...目标模块中导入并打印相关模块名 ?...: 1 包能够更好的组织模块,尤其是大规模代码很多,可以拆分成很多子模块,便于使用某些功能就加载相应的子目录 ---- 包目录中_init_.py是包在第一次导入时就执行的,内容可以为空,也可以是用于该包的初始化工作的代码...其路径在该包装的最外层。 内容如下 #!...show方法 结果也是相同,但别人在调用此模块时,其中的内容不会打印 进行函数化操作处理 #!
/master/bin/pyenv-installer | bash 配置环境变量, 在 ~/.bash_profile里增加如下内容: export PATH="~/.pyenv/bin:$...因为虚拟环境对于每一个python环境来说是独立开来的,用虚拟环境可以在一台机器上运行多个项目时,每个项目的环境是隔离,不产生依赖。...4、如需其他版本也可以下载对应的版本放到~/.pyenv/cache文件夹下面(cache文件夹假如不存在,自行创建) 5、然后执行 pyenv install 版本号 安装对应的python版本: pyenv...app.first_request: 在第一次请求之前执行 app.before_request: 在每次请求之前执行,可以用它来封装中间键,效果类似于django middleware app.after_request...: 在每次请求之后执行 app.teardown_appcontext: 不管是否有异常出现,都会在每次请求之后执行 app.errorhandler:接受状态码,并且自定义返回错误处理信息页面 5.1
当你要执行终端命令的时候,这个命令是从哪来呢,有个环境变量 PATH 企图hold住这个问题,大部分人打印一下 PATH (echo $PATH) 应该都会发现这样一部分 /usr/local/bin:...执行命令时查找循序由左到右,/usr/local/bin 里没找到去 /usr/bin 里找,还没有去 /bin 里看看。 基于此 pyenv 做了些什么呢?...这就说明了一个问题,只要你使用pyenv 运行 which python 的时候永远都打印 /Users/admin/.pyenv/shims/python 即使它指向的是各种各样的 python 版本...启用 pyenv 后再打印 PATH 那一大坨你都不想看。 说了这么多还没扯到问题关键呢,怎么搞。...vscode 作者之一在git issues 回答了这个问题,用 pyenv 的时候,是无法自动找到 pipenv 创建的虚拟环境的。
mac自带的python2.7不能删除,因为很多系统模块依赖,所以我们使用pyenv来安装python3.6版本,这样就可以并存。...1、安装OS X的套件管理器(类似ubuntu的apt-get), 网址如下:http://brew.sh/index_zh-cn.html 或者直接用终端命令安装 /usr/bin/ruby -e "...update brew install pyenv vi .bash_profile 添加如下内容: export PYENV_ROOT=/usr/local/var/pyenv if which...版本 pyenv install -l 我们选择安装最新的3.6.2 pyenv install 3.6.2 安装完成之后需要对数据库进行更新 pyenv rehash 查看系统已安装的版本: pyenv...versions *号表示系统当前正在使用的版本 ,可以看到是在system上面, python查看 发现依然是2.7版本 切换python版本 pyenv global 3.6.2 pyenv versions
是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换。...pyenv原理 pyenv 的美好之处在于,它并没有使用将不同的 $PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 $PATH 的最前面插入了一个垫片路径(shims): ~/...3)安装pyenv pyenv需要git工具,需要先安装git工具 ? pyenv提供了自动安装的工具,执行命令安装即可: ?...安装结束后,在结尾会出现上面这三行。 看是否安装成功,执行下面的命令: ? 如果返回的值是0,就表示安装成功。 如果想手动安装,可以执行此命令: 将 pyenv 检出到你想安装的目录。...该目录专用于当前用户bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取 在末尾新增加以下几行内容: ?
环境安装 我使用的python版本是3.6.6 推荐使用pyenv安装对应的版本,详情查看 为python版本抓狂,试下pyenv吧 准备工作: ☁ python pip install --upgrade...python tree mysite mysite ├── manage.py └── mysite ├── __init__.py # 空文件,告知python将mysite目录作为一个python模块...django 终端按 ctrl+c 关闭web服务器 终端会实时打印出所有的访问记录 默认的端口是8000, 我们也可以自定义端口 ☁ mysite python manage.py runserver...当应用运行出错时,会抛出详细的错误信息。调试模式只能在开发环境开启。切忌在生产环境开启,会暴露应用的敏感信息,除非你不想要饭碗了......INSTALLED_APPS # 告知Django哪些应用处于开启状态,我们新增应用时,需要在该配置项增加应用名称 MIDDLEWARE # 中间件 ROOT_URLCONF # 项目url的配置路径
/project1/bin/activate (project1)lab@ubuntu:~$ 使用venv创建python虚拟运行环境 python 3.3及以上版本在标准库中有一个venv的模块...,这个模块和virtualenv实现了类似的功能。...如果你的系统中没有包含venv模块,我们也可以通过命令来进行安装。...pyenv是一个开源的项目,他的源代码托管在github中,github的地址为https://github.com/pyenv/pyenv 。...$ pyenv versions 设置全局的python软件版本 $ pyenv global 3.6.2 $ pyenv versions 这时,我们再次执行python程序的时候,就已经使用了
大多数时候,这也是我们想要的,但是在极少数特殊情况下,如果需要禁用此功能时,我会给该命令设置一个别名:fda='fd -IH'。...Python 中创建虚拟环境的工具(比起内置的venv模块,我更喜欢 Virtualenv)。...我最近找到了一种名为 asdf 的工具,该工具可以将 pyenv、nodenv、rbenv 及其他 env 进行统一管理。...下载地址:https://asciinema.org/ 14colordiff 和 diff-so-fancy 我很少在终端中使用diff操作(比较两个文件之间的差异),但是如果你需要执行这个操作,可以放弃使用...mas 下载地址:https://github.com/mas-cli/mas 22ncdu 这是在终端进行磁盘分析时使用的工具,它使用起来简单快捷。当我需要释放一些硬盘空间时,会默认使用这款工具。
xml.etree.ElementTree模块实现了一个简单而有效的用户解析和创建XML数据的API。...在python3.3版本中,该模块进行了一些修改: xml.etree.cElementTree模块被弃用。...警告:xml.etree.ElementTree模块在解析恶意构造的数据会产生一定的安全隐患。所以使用该模块的时候需要谨慎。 下面来看看该模块是怎样解析和创建XML数据文档的。...在根节点下面,可以有很多子节点,而每一个子节点又可以有自己的属性或子节点.......我们今天需要解析的XML文件的内容如下: 我把该XML文件保存在:c:\\test\\hongten.xml文件中 1 <?xml version="1.0" encoding="UTF-8"?
多模块工程下,在父工程下执行的插件默认会在其所有的子模块上也执行一遍,大多数情况下这是合理的,比如像compiler这样的插件,但是有时候也种行为可能并不是开发人员所期望的,比如使用exec插件调用一个外部脚本或命令...,一般来说开发人员只希望在父工程下maven exec:exec来执行一次该命令即可,但在多模块下,你会发现这个同样的命令被执行了多次,多出来的执行是在每个子模块上执行的,于是我们需要一种方法来禁用插件在子模块上的执行...,一般来说两个方法: 一:查阅插件的文档,某些插件会主动提供禁用配置,以exec插件为例,如果子模块想禁用插件可以这样配置: 另外,补充一点:对于你exec这样的插件,虽然插件被禁用了,但是maven的命令行还会输出INFO信息告知某某模块的...exec被skip了,这些信息会干扰一个外部脚本或命令执行的输出,所以你可以在maven exec:exec的后面加上-q参数来disable maven的日志信息。
顺便说下PATH是用来找可执行程序的搜索路径,假如你在终端中运行命令my_cmd,系统会依次扫描PATH中的路径,看my_cmd是否存在于该路径下,所以如果提示找不到程序或命令无法识别,那你就要看路径是否加到...这条规则,对于所有Python的可执行程序都是适用的。流程如下图所示。 ?...那么,不加任何自定义配置时,使用pip安装包就会自动安装到/lib/pythonX.Y/site-packages下(是从上一段里得到的),可执行程序安装到...理解了Python是如何安装包的机制之后就不难理解虚拟环境(virtualenv, venv模块)的原理。...这样,后续安装包时,就会是myenv了,从而实现了安装路径的隔离。
二、自动化测试框架思想 为了更好的了解自动化测试框架,我们先从自动化测试的发展历程说起;一般测试工作限在3年以上且接触过自动化测试的应该对以下几种自动化测试框架思想有一定的认知: 模块化思想 库思想 数据驱动思想...上面讲到框架=思想+方法,于是演化了以下五种框架: 1、模块化测试脚本框架 需要创建小而独立的可以描述的模块、片断以及待测应用程序的脚本。...在一个关键字驱动测试中,把待测应用程序的功能和每个测试的执行步骤一起写到一个表中。 这个测试框架可以通过很少的代码来产生大量的测试用例。同样的代码在用数据表来产生各个测试用例的同时被复用。...设计框架时要将基础的封装成公用的,如:get请求、post请求和断言封装成同基础通用类。 测试用例要与代码分享,这样便于用例管理,所以将我们选择上面的数据驱动思想。...测试结果统计报告简洁清晰,附带详尽统计信息和日志记录 具有可扩展性,便于扩展实现 Web 平台化 02.png #### 2、环境准备 安装HomeBrew(MacOs软件包管理工具,类似apt-get、yum) 终端执行
一旦虚拟环境被激活,我们在终端中运行的任何Python命令或脚本将使用该虚拟环境的Python解释器和已安装的库。...在我们完成项目开发或不再需要该虚拟环境时,可以使用虚拟环境管理工具提供的命令退出虚拟环境,以返回到全局Python环境。...比如这里我需要depthai库,我们就需要执行下面的指令来安装该依赖库 pip install depthai-sdk 依赖安装完成后,我们可以使用下面的指令查看安装的包清单 pip list pip...它可以帮助我们查看已安装的包,以及它们的版本号,这在管理和维护Python环境时非常有用。 执行pip list命令会显示一个表格,其中包含已安装的包名称和对应的版本号。...如果我们已经在项目中创建了虚拟环境,那么在其他环境中或其他机器上工作时,我们可以直接复用该虚拟环境,而不需要重新创建。
在新的虚拟环境(使用pyenv建的)下,使用celery -A celery_tasks.tasks worker -l info启动项目下的一个文件 作为任务处理者。...原项目会使用celery发送任务到redis, 而在新移动的项目(新的虚拟环境)下,指定celery_tasks.tasks作为worker 从redis中拿任务 来执行。...但是,对该操作 是否会 引起其它的异常,尚不确定。...改后 如下: re_path(r'^order/', include('apps.order.urls', namespace='order')), # 订单模块 此时在pycharm的终端下,输入命令...因为使用pycharm建的项目 是自带虚拟环境的(就是项目下的venv目录) 与 使用pyenv创建的虚拟环境 可能有冲突。
回到一个原始的问题,在执行 python 命令时,操作系统是如何找到 python 命令的?答案就是 PATH 环境变量。...命令时,执行的就是虚拟环境中的,而不是默认安装的那个。...在使用 poetry 进行项目管理时,可以不显式激活虚拟环境,本质上,是 poetry 拦截了执行进程的环境变量等相关设置。 所以,换句话说,需要使用 poetry 来执行脚本。...Python 版本,并在激活后使用该版本的解释器。...在使用 pipenv 或者 poetry 时,使用它们安装依赖包时,会自动为项目创建虚拟环境,在切换项目时,需要执行 pipenv shell 或者 poetry shell 来激活虚拟环境。
在时序分析时,我们常会碰到的一类现象是:关键路径上的逻辑单元过于分散,导致布线延迟过大,从而造成时序违例。对此,我们可以通过相对位置约束或绝对位置约束来限定相关逻辑的位置关系。...我们还可以采用手工布局的方式,这对于时序违例路径集中在某一个模块或某一个层次内的情形较为适用。使用此方法时需要注意Pblock的大小。...如果Pblock的位置不合理,可能会出现顾此失彼的情形(Pblock内的模块时序改善了,而其他模块的时序又恶化了)。Pblock的另一弊端是缺乏灵活性。...该属性的作用是指导工具在布局时将指定层次/模块下的逻辑单元放得更紧凑一些。为便于说明,我们看一个例子。在没有使用该属性时,布局结果如下图所示。可以看到整个设计的资源利用率并不高,但却比较分散。...该属性的属性值为用户定义的组名,属性施加的对象为get_cells的返回值,也就是用户通过get_cells指定的模块,如下图所示。 使用此约束之后,最终的布局结果如下图所示。
每当在系统中执行一个命令时,例如 python 或 pip,操作系统就会在 PATH 的所有路径中从左至右依次寻找对应的命令。因为是依次寻找,因此排在左边的路径具有更高的优先级。...在PATH 最前面插入一个 $(pyenv root)/shims 目录,$(pyenv root)/shims目录里包含名称为python以及pip等可执行脚本文件;当用户执行python或pip命令时...再打开其他的终端窗口, 就不会出现该提示信息. 2) pyenv使用 当前系统默认的Python版本 [root@localhost ~]# python -V Python 2.6.6 pyenv...-V Python 2.7.5 如上设置后, 只在当前shell终端窗口有效, 退出重新登录 或 再打开另外一个窗口就不生效了 (即pytho版本还是之前的) 即使执行"pyenv...,存放该虚拟环境python的解释器; 并且在~/.pyenv/下创建一个软连接,该虚拟环境可以通过pyenv进行管理; 1) 比如创建某个项目的python虚拟环境, 虚拟环境的命令为kevin_py
;我们需要再安装较高版本的python,而且在开发多个项目时,可能需要多个版本的Python,此时在进行Python版本切换时会比较麻烦,pyenv就提供了一种简单的方式。...Python版本 能在同一时间在不同版本间进行命令搜索 拥有以下特点: 只依赖python本身 将目录添加进$PATH即可使用 能够进行virtualenv管理(通过插件) 二、安装pyenv 1、pyenv...pyenv uninstall 版本号或虚拟环境名或项目名称:卸载某个版本, 包括虚拟环境 用来创建隔离的python环境,处理python环境的多版本和模块依赖。...无论你在虚拟环境中安装了什么程序, 都不会影响已安装版本的系统环境 五、python IDE(集成开发环境) PyCharm:推荐,(写大型项目时) Idea 1、ipython ipython是一个...功能强大的编辑器 2)远程终端 ? 网页版的远程终端 3)网页版的ipython ?
pycharm -> Tools -> Run manage.py Task 时,出现ModuleNotFoundError: No module named 'MySQLdb', 出现该错误的原因是:...究其原因,大概是pycharm项目使用的虚拟环境中并没有安装mySQL和mysqlclient $brew install mySQL $pip install mysqlclient 于是在终端中执行...: $brew install mySQL $pip install mysqlclient 在终端中进入python3环境,import MySQLdb也可以成功导入该模块的。...执行过该操作后Run manage.py Task就不会报错了。.../目录, 而Pycharm构建的虚拟环境是在自己项目目录下的venv目录,通过Pycharm导入的packages也是在该目录结构下。
领取专属 10元无门槛券
手把手带您无忧上云