VScode/PyCharm+Anaconda+pyQt5的Python工程协同开发(环境搭建及项目配置)

1.背景

        之前对python的应用一直停留在写个main函数,写段逻辑,完成一个目的的阶段,不知道读者的学习路线是如何的?

        至于python环境的搭建,个人实际上经历了以下几个阶段:

①早期接触时,从python官网下载安装,完成环境变量的配置,SublimeText编辑器编写运行脚本,并在生产环境中使用CMD对.py进行调用;

②在那之后,图省事,直接在VisualStudio这样集成的IDE中进行安装配置,也会在VScode安装python插件搭配使用;更多的还是安装PyCharm,配置解释器进行环境搭建。


         可以看出,写本文之前对于python的使用极为简单,作为类似dos、sh等指令进行了解,使用上也是仅用到类似批处理的脚本功能。

        最近呢,接手了其他同事基于pyQt5模块开发出来的一个小python界面程序,在环境搭建时又了解到了新东西Anaconda;并且对于工程,并且是需要协同开发的工程,不仅仅是几个.py脚本的集合,还包括了与IDE、版本管理工具如git等等相关的东西,故有此文。

2.个人总结

总结了几点:

正确做法一个python工程对应一个虚拟环境,而不是把所有包都放在一起,anaconda这种python发行版做的就是这样的事(可以使用venv创建,也可以由conda管理,至于还有多少种其他虚拟环境,可以参考pycharm中给工程配置python解释器界面的列表)。

虚拟环境不能复用,在多台开发PC和多台生产PC上,可以复用的是包(参考下文,通过requirements.txt和whl文件夹实现包的复用)

开发人员之间,需要考虑对哪些文件进行git版本控制;鉴于在ViusalStudio中对C#工程的经验,nuget是个类似pip、conda这样的包管理工具,可以直接从pip获取的,无需上传至git。除非在开源代码上有自己的修改,但这种还是需要将修改后的代码进行上传的。


一些编辑此文时遇到的名词,及简单理解如下:

【.idea】

pycharm等jetbrains公司软件工具的通用工程配置文件。

【.idea-workspace.xml】

个人开发环境配置,无需版本管理,如要管理,需要修改<option name="SDK_HOME" value="your python.exe path"为对应开发环境中正确的python解释器的路径,进行复用。

【anaconda】

一个python的发行版软件,可以对多个python工程进行虚拟环境配置。

【venv、virtualenv】

前者是后者的一个子集,Python3.6后标准库自带venv虚拟环境,虚拟环境不能移植(参见警告:

venv — 创建虚拟环境 — Python 3.10.8 文档
 

Virtualenv — virtualenv 20.16.6.dev4+gcdf4225 documentation (pypa.io)

PEP 405 – 蟒蛇虚拟环境|peps.python.org

【venv-pyvenv.cfg】

虚拟环境配置,默认配置中home指向创建该venv的python解释器所在目录,使用python -m venv your_venv进行新环境创建时默认生成。

【requirements.txt】

①导出,在已激活的venv中使用pip freeze > requirements.txt将包导出到txt;

②新环境导入,新建venv,激活,复制上文导出的txt到Scripts目录,使用下述指令从txt中进行安装

pip install -r requirements.txt  -i Simple Index --trusted-host mirrors.aliyun.com

(CMD中F7查看历史指令,F9可输入历史指令序号跳转到该指令)

【requirements.txt + packages】

前提:已经通过pip freeze > requirements.txt将包列表导出到txt

①下载whl到packages文件夹

pip download -r requirement.txt -d ./packages

②拷贝packages文件夹、requirements.txt新环境,离线安装whl(前提新环境中已创建venv,对于conda环境同样适用,拷贝到conda环境python.exe所在目录即可)

pip install --no-index --find-links=./packages -r requirements.txt

猜你喜欢

转载自blog.csdn.net/qq_23958061/article/details/127450565