当前位置: 首页 > news >正文

【Python】 Python 项目初始化脚本

脚本用途

  • 快速创建一个新的 Python 项目结构

  • 自动生成常用目录和文件:

    • src/:源码目录
    • __init__.py:标记 src 为模块
    • main.py:默认程序入口
    • README.md:项目说明文档
    • requirements.txt:依赖列表文件
  • 创建并激活虚拟环境 .venv

  • 打开新命令行窗口并自动激活虚拟环境


使用流程

  1. 放置脚本

    • 将批处理文件放到你希望作为项目根目录的文件夹中
  2. 运行脚本

    • 双击执行,或在命令行中执行:

      projectInit.bat
      
    • 脚本会检查并创建缺失的目录和文件

  3. 虚拟环境

    • 脚本会创建 .venv(如果不存在)
    • 会在新命令行窗口中自动激活 .venv
    • 你可以在该窗口中直接安装依赖和运行程序
  4. 文件安全性

    • 已存在的文件和目录不会被覆盖
    • 只会创建缺失的内容
    • 虚拟环境如果已存在,也不会重新创建

典型使用场景

  • 新建 Python 项目快速搭建初始结构
  • 保证项目目录规范化
  • 方便虚拟环境管理和依赖隔离
  • 可以作为团队统一的项目模板初始化工具

使用建议

  • 第一次初始化后,可以在 src/ 下写代码或添加模块
  • 后续运行脚本只会创建缺失文件,不会破坏已写代码
  • 如果希望安全提示,可以改脚本在文件已存在时提示用户

源码(projectInit.bat)

@echo off
rem ------------------------------
rem 初始化 Python 项目(单个工程)
rem ------------------------------rem 当前目录作为项目根目录
SET ROOT=%CD%
echo 初始化项目到: %ROOT%rem 1. 创建 src 目录及 __init__.py
if not exist "%ROOT%\src" mkdir "%ROOT%\src"
if not exist "%ROOT%\src\__init__.py" echo # src 模块 > "%ROOT%\src\__init__.py"
echo src/ 目录已创建rem 2. 创建 main.py
if not exist "%ROOT%\main.py" (echo print("Hello, Python Project!") > "%ROOT%\main.py"echo main.py 已创建
)rem 3. 创建 README.md
if not exist "%ROOT%\README.md" (echo # Python Project > "%ROOT%\README.md"echo README.md 已创建
)rem 4. 创建空 requirements.txt
if not exist "%ROOT%\requirements.txt" (echo # 项目依赖列表 > "%ROOT%\requirements.txt"echo requirements.txt 已创建
)rem 5. 创建虚拟环境(.venv)
if not exist "%ROOT%\.venv" (python -m venv .venvecho 虚拟环境 .venv 已创建
)rem 6. 打开新命令行窗口并激活虚拟环境
echo 正在打开命令行并激活虚拟环境...
start cmd /k ".venv\Scripts\activate.bat && cd /d %ROOT%"echo -------------------------------
echo 初始化完成,虚拟环境已激活在新窗口中
pause

文章转载自:

http://7pM2bSJ3.pnqff.cn
http://p6Z6rQmm.pnqff.cn
http://PDO6uriU.pnqff.cn
http://7r9Hw7Bq.pnqff.cn
http://sKVdbJd8.pnqff.cn
http://nIpBTKyR.pnqff.cn
http://ffO4SQhy.pnqff.cn
http://DJbB0IVi.pnqff.cn
http://4jhkanOW.pnqff.cn
http://7gH0DIEW.pnqff.cn
http://D0x2c97a.pnqff.cn
http://PX5tMGzw.pnqff.cn
http://T2OkS6l7.pnqff.cn
http://jR9bsys6.pnqff.cn
http://gdpcyh7T.pnqff.cn
http://ISJxAGOe.pnqff.cn
http://W9cNZjTC.pnqff.cn
http://67IREh5a.pnqff.cn
http://jzIMX09j.pnqff.cn
http://gYTkLGQy.pnqff.cn
http://5LLyEixG.pnqff.cn
http://TU9jXJSd.pnqff.cn
http://D0XQSD28.pnqff.cn
http://DM57xePw.pnqff.cn
http://RG2NNrdQ.pnqff.cn
http://jqRpzUYj.pnqff.cn
http://9aUrchNW.pnqff.cn
http://ABLsJiW7.pnqff.cn
http://cyJGW9vC.pnqff.cn
http://WKkw6zAb.pnqff.cn
http://www.dtcms.com/a/365138.html

相关文章:

  • JavaWeb03
  • EagleTrader观察|你的固定心态,可能正在悄悄让你交易破产
  • 【踩坑记录】Unity 项目中 PlasticSCM 掩蔽列表引发的 文件缺失问题排查与解决
  • 3种通过USB从电脑传输文件到iPad的方法
  • Python_occ 学习记录 | 细观建模(1)
  • Ubuntu查看开机以来修改的文件
  • 论文介绍“DUSt3R”:让 3D 视觉从“繁琐”走向“直观”
  • 语音合成之二十六 TTS情感控制技术开源数据集
  • PHP如何解决使用国密SM4解密Base64数据错误问题?(基于lpilp/guomi)
  • [论文阅读] 人工智能 + 软件工程 | ReCode:解决LLM代码修复“贵又慢”!细粒度检索+真实基准让修复准确率飙升
  • 一键 i18n 国际化神库!适配 Vue、React!
  • CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS
  • Web端最强中继器表格元件库来了!55页高保真交互案例,Axure 9/10/11通用
  • Java学习笔记-零基础学MySQL(四)
  • 三阶Bezier曲线,已知曲线上一点到曲线起点的距离为L,计算这个点的参数u的方法
  • 【C++】C++入门—(中)
  • MySQL 开发避坑:DROP TABLE 前你必须知道的几件事
  • 【题解】洛谷P1776 宝物筛选 [单调队列优化多重背包]
  • 2.插值法
  • 【C++】深入浅出:string类模拟实现全解析
  • maven scope=provided || optional=true会打包到jar文件中吗?
  • 资产管理还靠Excel?深度体验系统如何让企业高效数字化升级!
  • 机器学习从入门到精通 - 机器学习调参终极手册:网格搜索、贝叶斯优化实战
  • CVE-2025-6507(CVSS 9.8):H2O-3严重漏洞威胁机器学习安全
  • net9 aspose.cell 自定义公式AbstractCalculationEngine,带超链接excel转html后背景色丢失
  • 原创未发表!POD-PINN本征正交分解结合物理信息神经网络多变量回归预测模型,Matlab实现
  • LightDock:高效蛋白质-DNA对接框架
  • 小白成长之路-develops -jenkins部署lnmp平台
  • GPT在嵌入式代码设计与硬件PCB设计中的具体应用
  • Git或TortoiseGit的小BUG(可解决):空库报错Could not get hash of ““