文章目录
引言
Python中有分发模块,平常使用的是git提交代码,两者有什么区别呢?
Python模块的分发和将其提交到Git仓库(如GitHub、GitLab等)主要有以下区别:
python分发和提交到git的区别
一、目的
1.1 Python模块分发
目的是为了方便用户安装和使用模块。分发后的模块可以通过包管理工具(如pip)轻松安装到用户的Python环境中
1.2 提交到Git
目的是为了代码的版本控制、共享、备份和协作。提交到Git仓库可以让其他开发者查看、贡献或克隆项目代码
二、使用方式
2.1 Python模块分发
用户通常通过包管理工具来安装和使用模块。例如,使用pip install module_name
来安装模块
2.2 提交到Git
开发者通常会克隆(git clone
)或派生(git fork
)仓库到本地,然后在本地环境中进行开发、测试和修改
三、工作流程
3.1 Python模块分发
- 编写代码:开发一个Python模块,通常包含一系列的类、函数和属性。
- 定义元数据:
- 创建
setup.py
或setup.cfg
文件,其中包含模块的名称、版本、作者、描述、依赖等信息。 - 定义
pyproject.toml
(如果使用PEP 517/518)。
- 创建
- 编写文档:
- 准备README文件,说明模块的用途、安装方法、使用示例等。
- 编写详细的文档,可能包括用户指南、API参考等。
- 打包:
- 使用
setuptools
、wheel
等工具将模块打包成.whl
或.tar.gz
格式。
- 使用
- 上传到PyPI:
- 使用
twine
工具上传打包好的文件到Python Package Index (PyPI)。
- 使用
- 版本管理:
- 确定遵循语义化版本控制(SemVer),以便用户理解版本变更的影响。
- 用户安装:
- 用户通过
pip install module_name
命令安装模块。
- 用户通过
3.2 提交到Git
- 初始化仓库:
- 在项目目录下运行
git init
创建新的Git仓库。
- 在项目目录下运行
- 跟踪文件:
- 使用
git add
命令跟踪项目文件。
- 使用
- 提交更改:
- 使用
git commit
提交更改,并添加描述性的提交信息。
- 使用
- 分支管理:
- 使用
git branch
创建分支,git checkout
切换分支,便于并行开发。
- 使用
- 远程同步:
- 使用
git remote add
添加远程仓库,git push
将本地更改推送到远程。
- 使用
- 协作开发:
- 使用
git pull
获取远程仓库的最新更改,git merge
合并分支。
- 使用
- 版本历史:
- Git记录了所有提交的历史,便于回溯和审查。
四、用户交互
4.1 Python模块分发
用户通常不需要关心代码是如何被开发的,他们只关心如何安装和使用模块。
4.2 提交到Git
用户(尤其是其他开发者)可能会关心代码的历史、变更、分支和贡献流程
五、依赖管理
5.1 Python模块分发
依赖通常在setup.py
或pyproject.toml
中定义,并在安装时通过pip自动解决
5.2 提交到Git
依赖可能通过requirements.txt
文件或其他依赖管理工具(如Pipfile)来管理,用户需要手动安装这些依赖
六、示例场景
6.1 Python模块分发
当开发了一个库,并希望让其他开发者或项目使用这个库时,会选择分发它
6.2 提交到Git
当正在进行一个项目,并希望与其他开发者协作、跟踪代码变更或备份代码时,会选择将其提交到Git
总结来说,Python模块的分发主要是为了方便用户安装和使用,而提交到Git则是为了代码的版本控制和协作开发,但两者可以互为补充,比如,可以将模块代码托管在Git上,同时将其分发给用户
用venv
、Pycharm
以及conda
创建虚拟环境的区别
一、使用 venv
创建独立的Python环境
1.1 用venv
创建虚拟环境
安装Python
确保你的系统中安装了Python 3(Python 3.3及以上版本内置了venv
模块)打开命令行
– 在Windows上,你可以使用命令提示符或PowerShell
– 在macOS或Linux上,你可以使用终端创建虚拟环境
使用以下命令创建一个新的虚拟环境:python -m venv myenv
这将在当前目录下创建一个名为
myenv
的新目录,其中包含了独立的Python解释器和标准库激活虚拟环境:
– 在Windows上:myenv\Scripts\activate
– 在macOS或Linux上:
source myenv/bin/activate
激活虚拟环境后,你的命令行提示符会变化,通常会前置虚拟环境的名字。
使用虚拟环境:
激活虚拟环境后,你可以使用pip
安装包,这些包会被安装到虚拟环境中,不会影响系统全局的Python环境。
1.2 简便方法
一键创建并激活:
可以将创建和激活虚拟环境的命令放在一个命令中执行:python -m venv myenv && source myenv/bin/activate
在Windows上,则使用:
python -m venv myenv && myenv\Scripts\activate
使用脚本:
创建一个简单的脚本来创建和激活虚拟环境,这样你就可以通过运行一个命令来重复这个过程
二、用venv
创建虚拟环境与其他工具(如conda
)的区别
2.1 venv
vs conda
venv
是Python标准库的一部分,而conda
是Anaconda或Miniconda的一部分,它提供了更广泛的包管理和环境管理功能conda
可以管理Python和非Python包,而venv
只能管理Python包conda
环境可以更方便地管理不同版本的Python
2.2 venv
vs pycharm
venv
专注于虚拟环境管理,而PyCharm
是一个全面的IDE,提供从代码编写到调试的全套开发工具venv
是命令行工具,PyCharm
提供了图形界面PyCharm
内置了对venv
的支持,可以直接在IDE中创建、管理和使用虚拟环境,而venv
需要在命令行中手动操作PyCharm
功能更全面,但相应的学习曲线也更陡峭。venv
则相对简单,易于上手PyCharm
作为IDE,相比纯命令行工具venv
,通常需要更多的系统资源
总的来说:
1、venv
是一个轻量级、易于使用的工具,非常适合快速创建独立的Python环境以及隔离Python环境的场景;PyCharm
是一个功能强大的IDE,适用于全面的Python项目开发;conda
是一个强大的包和环境管理工具
2、对于大多数基本用途,venv
已经足够好了,但如果需要更复杂的环境管理或依赖管理,可以考虑使用conda
或PyCharm
等其他工具