强大的包管理器Poetry
摘自:https://www.cnblogs.com/liuzhongkun/p/16797346.html Poetry概述介绍Poetry 是Python 中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。Poetry 提供了一个锁定文件以确保可重复安装,并且可以构建您的项目以进行分发。 作为一个传统虚拟环境的实现,poetry 凭借其强大的依赖分析能力被大量项目所推荐的虚拟环境管理工具。 对于绝大部分的开发者而言,poetry 作为首选的虚拟环境管理工具是最优方案,其强大的依赖分析能力、环境封装能力以及庞大的社区均可为你的开发保驾护航,这也是我目前最为推荐所有 python 开发者所掌握的虚拟环境管理工具。 环境配置官方推荐安装1curl -sSL https://install.python-poetry.org | python3...
Python项目打包成可执行文件
引言Python是一种广泛使用的编程语言,适合快速开发和原型设计。然而,Python代码通常是以脚本形式分发的,需要目标系统上预先安装Python解释器。这对于非技术用户来说可能不太方便,因此,将Python项目打包为独立的可执行文件(exe)是一个常见的需求。本文将介绍如何将Python项目打包为可执行文件,涵盖基本概念、常用打包工具、详细步骤和注意事项。 基本概念在讨论打包之前,了解以下几个基本概念非常重要: 可执行文件:在Windows系统中,可执行文件通常是以“.exe”扩展名结尾的文件。它包含了可以直接运行的二进制代码。 依赖项:Python项目通常依赖于各种外部库或模块。这些依赖项在打包时需要一并包含,以确保可执行文件在没有Python环境的系统上也能运行。 虚拟环境:为了管理项目的依赖项,通常会使用Python的虚拟环境。打包时,通常是在虚拟环境中进行,以确保所有依赖项都能被正确打包。 常用打包工具 PyInstaller:...
scrapy爬虫框架的使用
Scrapy的介绍scrapy的工作流程如下图所示: 爬虫: 负责向引擎提供要爬取网页的URL,引擎会把这个URL封装成request对象并传递给调度器, 把引擎传递过来的response对象进行数据解析。数据解析有两种结果: 解析出具体的数据,那么通过引擎把这个具体的数据传递给管道,然后存入文件、数据库等 解析出一个新的URL,那么过程同作用1 管道:负责把引擎传递过来的数据进行存储,存入文件、数据库等。管道可以有多个,比如MySQL的管道,某个文件的管道,mango的管道等。 调度器:可以把调度器的存储结构看成一个优先队列,不同的request对象可能优先级不一样,按优先级的高低进行调度 把引擎传递过来的request对象放入队列进行排队,调度器可以实现去重的效果,即对两个相同的URL,只存储一个 向引擎提供队头的request对象(即优先级高的request对象),引擎把这个request对象传递给下载器进行请求 下载器:把引擎传递过来的request对象发送给服务器请求数据,并把服务器返回的内容封装成response对象,...
pyautogui学习
前言 pyautogui是用来做GUI桌面应用自动化的Python包,功能类似于按键精灵,可以实现控制鼠标、键盘、消息框、截图、定位功能,支持跨平台。不过也有缺点,比如说不支持中文输入(一般配合pyperclip解决此问题) 安装123456789101112# Windowspip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple# Macpip install pyobjc-corepip install pyobjcpip install pyautogui# Linux#sudo apt-get install scrot python3-tk python3-devpip install python3-xlibpip install pyautogui 操作鼠标操作 以屏幕左上角的为原点,向右为x轴正向,向下为y轴正向,单位是像素,通过(x,y)确定位置 12345678910111213141516pyautogui.PAUSE=2 #...
Pytest学习总结
PytestPytest之fixture的使用fixture的功能fixture是pytest特有的功能,用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识,定义在函数前面。在你编写测试函数的时候,你可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将该函数的返回值作为测试函数的传入参数。 主要的目的是为了提供一种可靠和可重复性的手段去运行那些最基本的测试内容。 从功能上看来,与setup、teardown相似,但是优势明显: 命名方式灵活,不局限于setup和teardown这几个命名 conftest.py 配置里可以实现数据共享,不需要import就能自动找到一些配置 scope="module" 每一个.py文件调用一次 scope="session" 可以实现多个.py跨文件使用一个session来完成多个用例 fixture的参数详解 @pytest.fixture(scope = "function", params=None,...
Selenium学习总结
参考:https://cloud.tencent.com/developer/article/1722974 selenium介绍selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 中文参考文档:https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/ 环境准备selenium 安装1pip install selenium -i https://mirrors.aliyun.com/pypi/simple/ chrome...
pyenv使用
需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存。pyenv就是这样一个Python版本管理器 Mac安装pyenv1brew install pyenv 添加.zshrc 代码 添加完毕执行:source ~/.zshrc 1234export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init --path)"eval "$(pyenv init -)" 查看当前激活的是那个版本的Python1pyenv version 查看已经安装了那些版本的Python1pyenv versions 安装指定版本的Python123pyenv install xx.xx.xx (pyenv install 3.10.16)# 记得一定要rehashpyenv...
Minium学习
环境搭建之第一个测试程序什么是Minium?minium是为小程序专门开发的自动化框架,使用minium可以进行小程序UI自动化测试。 当然,它的能力不仅仅局限于UI自动化, 比如: 使用minium来进行函数的mock 可以直接跳转到小程序某个页面 设置页面数据, 做针对性的全面测试 这些能力是其他的一些工具所不具备的,不仅如此,它还有许多其他特性,也是很吸引人的: 支持一套脚本,iOS &Android& 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小程序页面数据,让测试不止点点点 可以直接触发小程序元素绑定事件 支持往AppSerive注入代码片段执行 可以调用部分wx对象上的接口 支持Mock wx对象上的接口 支持Hook wx对象上的接口 通过suite方式管理用例,config管理运行设备 ... 环境搭建准备工作 Python 3.8及以上 选择稳定版下载 微信开发者工具 微信 >= 7.0.7 自动安装pip3 install minium或者pip3 install...
python学习总结
python变量的层级global 当使用global 定义全局变量时,经常会提示:Global variable '变量名' is undefined at the module level 12def test001(self) global user_id 下边是查询后得到得结果 12345678910a = '我是模块中的变量a'def hi(): a = '我是函数里的变量a' print('函数“hi”已经运行!')class Go2: a = '我是类2中的变量a' def do2(self): print('函数“do2”已经运行!') 在整个py文件中,非def和class之外得变量,一般在最上放得变量,才是模块变量 如果是在模块中为全局变量赋值 123456# 定义一个全局变量user_id,但是仍然需要在模块层先定义一个全局变量gloabl user_iddef...
Python测试框架之unittest和pytest的区别
摘自:https://blog.csdn.net/zhusongziye/article/details/103963042 UnittestUnittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 示例 执行结果 注:unittest有一个关联模块unittest2,但unittest2仅适用于Python 2.4-2.6。这是由于从Python 2.7开始,unittest增加一些新的特性。为了在老的版本中支持这些特性,所以提供了unittest2这个库。但对于Python...
