您的位置:首页 > 汽车 > 新车 > 【python学习】思考-python分发和提交到git的区别以及用venv、pycharm以及conda创建虚拟环境的区别

【python学习】思考-python分发和提交到git的区别以及用venv、pycharm以及conda创建虚拟环境的区别

2024/9/8 9:07:22 来源:https://blog.csdn.net/m0_49243785/article/details/140571737  浏览:    关键词:【python学习】思考-python分发和提交到git的区别以及用venv、pycharm以及conda创建虚拟环境的区别

文章目录

  • 引言
  • python分发和提交到git的区别
    • 一、目的
      • 1.1 Python模块分发
      • 1.2 提交到Git
    • 二、使用方式
      • 2.1 Python模块分发
      • 2.2 提交到Git
    • 三、工作流程
      • 3.1 Python模块分发
      • 3.2 提交到Git
    • 四、用户交互
      • 4.1 Python模块分发
      • 4.2 提交到Git
    • 五、依赖管理
      • 5.1 Python模块分发
      • 5.2 提交到Git
    • 六、示例场景
      • 6.1 Python模块分发
      • 6.2 提交到Git
  • 用`venv`、`Pycharm`以及`conda`创建虚拟环境的区别
  • 一、使用 `venv` 创建独立的Python环境
    • 1.1 用`venv`创建虚拟环境
    • 1.2 简便方法
  • 二、用`venv`创建虚拟环境与其他工具(如`conda`)的区别
    • 2.1 **`venv` vs `conda`**
    • 2.2 **`venv` vs `pycharm`**

引言

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模块分发

  1. 编写代码:开发一个Python模块,通常包含一系列的类、函数和属性。
  2. 定义元数据
    • 创建setup.pysetup.cfg文件,其中包含模块的名称、版本、作者、描述、依赖等信息。
    • 定义pyproject.toml(如果使用PEP 517/518)。
  3. 编写文档
    • 准备README文件,说明模块的用途、安装方法、使用示例等。
    • 编写详细的文档,可能包括用户指南、API参考等。
  4. 打包
    • 使用setuptoolswheel等工具将模块打包成.whl.tar.gz格式。
  5. 上传到PyPI
    • 使用twine工具上传打包好的文件到Python Package Index (PyPI)。
  6. 版本管理
    • 确定遵循语义化版本控制(SemVer),以便用户理解版本变更的影响。
  7. 用户安装
    • 用户通过pip install module_name命令安装模块。

3.2 提交到Git

  1. 初始化仓库
    • 在项目目录下运行git init创建新的Git仓库。
  2. 跟踪文件
    • 使用git add命令跟踪项目文件。
  3. 提交更改
    • 使用git commit提交更改,并添加描述性的提交信息。
  4. 分支管理
    • 使用git branch创建分支,git checkout切换分支,便于并行开发。
  5. 远程同步
    • 使用git remote add添加远程仓库,git push将本地更改推送到远程。
  6. 协作开发
    • 使用git pull获取远程仓库的最新更改,git merge合并分支。
  7. 版本历史
    • Git记录了所有提交的历史,便于回溯和审查。

四、用户交互

4.1 Python模块分发

用户通常不需要关心代码是如何被开发的,他们只关心如何安装和使用模块。

4.2 提交到Git

用户(尤其是其他开发者)可能会关心代码的历史、变更、分支和贡献流程

五、依赖管理

5.1 Python模块分发

依赖通常在setup.pypyproject.toml中定义,并在安装时通过pip自动解决

5.2 提交到Git

依赖可能通过requirements.txt文件或其他依赖管理工具(如Pipfile)来管理,用户需要手动安装这些依赖

六、示例场景

6.1 Python模块分发

当开发了一个库,并希望让其他开发者或项目使用这个库时,会选择分发它

6.2 提交到Git

当正在进行一个项目,并希望与其他开发者协作、跟踪代码变更或备份代码时,会选择将其提交到Git

总结来说,Python模块的分发主要是为了方便用户安装和使用,而提交到Git则是为了代码的版本控制和协作开发,但两者可以互为补充,比如,可以将模块代码托管在Git上,同时将其分发给用户


venvPycharm以及conda创建虚拟环境的区别

一、使用 venv 创建独立的Python环境

1.1 用venv创建虚拟环境

  1. 安装Python
    确保你的系统中安装了Python 3(Python 3.3及以上版本内置了venv模块)

  2. 打开命令行
    – 在Windows上,你可以使用命令提示符或PowerShell
    – 在macOS或Linux上,你可以使用终端

  3. 创建虚拟环境
    使用以下命令创建一个新的虚拟环境:

    python -m venv myenv
    

    这将在当前目录下创建一个名为myenv的新目录,其中包含了独立的Python解释器和标准库

  4. 激活虚拟环境
    – 在Windows上:

    myenv\Scripts\activate
    

    – 在macOS或Linux上:

    source myenv/bin/activate
    

    激活虚拟环境后,你的命令行提示符会变化,通常会前置虚拟环境的名字。

  5. 使用虚拟环境
    激活虚拟环境后,你可以使用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已经足够好了,但如果需要更复杂的环境管理或依赖管理,可以考虑使用condaPyCharm等其他工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com