Loading

python项目管理

python项目管理

对于未安装过的依赖包

  • 1:通过pip install xxx安装,依赖包被放入一个全局的环境中,所有项目共享

    • 存在的问题:多个项目可能存在依赖版本冲突、复杂的依赖关系可能更多的冲突
  • 2:python -m venv .venv在项目目录下产生一个名为.venv目录,是一个虚拟环境。推荐使用.venv,ide会识别这个名字。此时用pip安装,会安装到.venv目录。

    • 避免了多个项目依赖冲突的问题
    • 原理:修改python中的sys.path变量,这个变量里面记录了python在导入模块时,需要搜索的文件夹路径
  • 3:怎么方便的的把项目依赖方便准确的分享给其他人?

    • 使用pip freeze > requirements.txt把所有安装好的包以及他们的确切版本号写入txt
    • 使用pip install -r requirements.txt读取并安装依赖
    • 存在的问题1:pip freeze分不清什么是我们的项目直接依赖,什么是直接依赖引入的间接依赖。项目复杂之后,情况会变坏
    • 存在的问题2:pip uninstall卸载,然后重新用freeze生成文件时,只会移除直接依赖,间接依赖仍然保留着
  • 4:使用pyproject.toml文件:官方指定的统一的配置文件,将requirements.txt的直接依赖,复制到pyproject.tomldependencies(dependencies里面只需要放直接依赖)

    • 依赖写好之后,可以在根目录下执行:pip install -e .其中.表示当前目录,把当前的项目安装到虚拟环境中
  • 5:使用uv进行整体管理

    • 保证项目下面有一个pyproject.toml,使用uv add xxx添加依赖

      • source .venv/bin/activate激活环境
      • python main.py运行
      • 或者uv run main.py代替上面两个命令行
    • 别人的项目,使用uv sync,自动读取pyproject.toml文件,并自动搭建好环境和下载相关依赖

    • #uv常用命令
      
      #uv支持的python版本
      uv python list  
      #下载指定版本
      uv python install cpython-3.12
      
      #用3.12运行ai.py和调用python交互界面
      uv run -p 3.12 ai.py
      uv run -p 3.12 python
      
      #创建一个uv工程,python3.13版本
      uv init -p 3.13
      #安装依赖
      uv add xxx
      uv add xxx --dev #避免打包时把依赖打包进去
      #移除依赖
      uv remove xxx
      
      #以工具安装到系统之中,脱离工程独立运行,整个系统都可用,会为每个工具建立自己的虚拟环境
      uv tool install xxx
      # 查看安装的工具
      uv tool list
      
      #执行程序
      uv run main.py
      
      #打印依赖树
      uv tree
      
posted @ 2025-12-29 16:10  kiiou  阅读(0)  评论(0)    收藏  举报