用Scikit-learn构建你的第一个机器学习模型:入门实操指南
2026/10/13 21:05:03
# 在当前目录下创建名为 myenv 的虚拟环境 python -m venv myenv # 激活虚拟环境(Linux/macOS) source myenv/bin/activate # 激活虚拟环境(Windows) myenv\Scripts\activate激活后,终端提示符将显示环境名称,此时 `pip install` 安装的包仅作用于当前环境。| 参数 | 说明 |
|---|---|
| home | 指向系统Python解释器的安装路径 |
| include-system-site-packages | 控制是否允许访问全局 site-packages(默认 false) |
# 停用当前环境 deactivate # 删除环境(手动移除目录) rm -rf myenv # Linux/macOS rmdir /s myenv # Windows此机制简化了环境清理流程,同时降低系统污染风险。lib/pythonX/site-packages,仅加载本环境安装的包;python和pip指向虚拟环境内的副本;sys.path优先加载本地环境路径。# 创建虚拟环境 python -m venv myproject_env # 激活环境(Linux/macOS) source myproject_env/bin/activate # 安装包(仅影响当前环境) pip install requests上述命令序列创建了一个隔离空间,其中pip install仅修改myproject_env内的包,不影响系统全局Python。激活后,解释器自动识别该环境路径优先级最高,实现无缝隔离。python --version # 或 python3 --version若输出为Python 3.8.10等格式,则表示版本可用。若版本过低或未安装,需前往官网下载并安装合适版本。venv是Python 3.3+内置的虚拟环境管理模块,用于隔离项目依赖。执行以下命令测试其可用性:python -m venv --help若成功显示帮助信息,说明venv模块可正常使用。若提示模块不存在,可能需安装python3-venv系统包(如在Ubuntu中):sudo apt updatesudo apt install python3-venvpython -m venv可创建隔离的虚拟环境,避免不同项目间的包版本冲突。python -m venv myproject_env该命令会生成一个名为myproject_env的目录,包含独立的 Python 解释器副本和pip工具。参数说明: -venv是标准库模块,无需额外安装; -myproject_env为自定义环境名称,可任意指定。myproject_env\Scripts\activatesource myproject_env/bin/activatesite-packages与bin是两个关键目录。前者存放第三方库,后者包含可执行脚本。/usr/local/lib/python3.11/site-packages/ ├── requests/ ├── numpy/ └── flask/每个子目录对应一个已安装的库,包含模块文件和元数据(如dist-info)。bin目录存放可执行程序,常见于虚拟环境或系统级安装中:pip:包管理工具本身flask:Flask CLI 命令ipython:交互式解释器入口flask run时,系统从bin中找到脚本,加载site-packages/flask模块并启动服务。/projects/logs/prod-2024/。mkdir -p /data/app && chmod 750 /data/app chown appuser:appgroup /data/app该命令确保目录路径存在,设置合理权限(用户可读写执行,组用户可读执行,其他用户无权限),并正确归属所有者,防止越权访问。activate.bat:适用于cmd.exe,设置PROMPT和PATHactivate.ps1:用于PowerShell,需绕过执行策略限制set VIRTUAL_ENV=C:\project\venv set PATH=%VIRTUAL_ENV%\Scripts;%PATH% set PROMPT=(venv) %PROMPT%上述代码将当前虚拟环境路径注入PATH,确保python和pip指向隔离环境中的可执行文件,并通过修改提示符提供视觉反馈。source命令用于在当前Shell环境中读取并执行脚本文件中的命令。与直接执行脚本不同,后者会创建子进程,而source在当前进程上下文中运行,从而实现环境变量的“注入”。source加载的脚本可修改当前Shell的环境变量,例如:source ./env.sh echo $MY_VAR # 若env.sh中定义了 MY_VAR,则此处可访问该机制依赖于Shell对文件内容的逐行解析与即时执行,使得变量赋值、函数定义等操作直接影响父环境。echo $PATH若缺失关键路径(如/usr/local/bin),可通过以下方式临时添加:export PATH="/usr/local/bin:$PATH"该命令将指定路径前置,确保优先查找,但仅对当前会话生效。Get-ExecutionPolicy若返回Restricted,需提升权限并修改策略:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser此设置允许本地脚本执行,同时要求远程脚本签名,兼顾安全与可用性。requirements.txt是管理项目依赖的标准方式。它记录了项目所需的所有第三方库及其精确版本,便于在不同环境中快速重建一致的依赖状态。pip freeze > requirements.txt该命令将所有已安装包及其版本写入文件,确保环境可复现。 随后,在目标机器上执行:pip install -r requirements.txt自动安装文件中列出的全部依赖,避免手动逐个安装带来的版本不一致问题。requirements.txt至版本控制系统venvs/:存放所有虚拟环境的根目录venvs/project-a/:对应项目的独立环境scripts/activate-all.sh:批量激活脚本# scripts/setup-env.sh python -m venv venvs/$PROJECT_NAME source venvs/$PROJECT_NAME/bin/activate pip install -r requirements.txt该脚本通过预定义变量自动创建并配置环境,减少人为操作失误。参数$PROJECT_NAME从外部传入,实现多项目复用。~/.bashrc中添加别名:# 为激活 Python 虚拟环境设置别名 alias activate-venv='source ~/projects/myapp/venv/bin/activate'该命令将冗长的激活路径简化为activate-venv,执行后自动进入指定虚拟环境。source ~/.bashrc生效alias命令查看当前所有别名#!/bin/bash # 创建虚拟环境 python -m venv venv # 激活环境并安装依赖 source venv/bin/activate && pip install -r requirements.txt echo "环境初始化完成"该脚本首先使用 Python 内建模块venv创建隔离环境,随后通过source命令激活,并执行依赖安装。requirements.txt文件应提前定义项目所需包及其版本。venv模块虽适合本地开发,但在多项目、多依赖版本共存时易出现冲突。例如,两个服务分别依赖 Django 3.2 和 4.2,venv无法隔离系统级环境,导致部署失败。# 使用轻量基础镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 复制依赖并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY . . # 暴露端口 EXPOSE 5000 # 启动命令 CMD ["gunicorn", "app:app", "-b", "0.0.0.0:5000"]该配置确保了环境一致性,避免“在我机器上能跑”的问题。pip-tools生成锁定文件requirements.txt| 环境 | 数据库 URL | 日志级别 |
|---|---|---|
| 开发 | postgresql://dev:5432/app | DEBUG |
| 生产 | postgresql://prod:5432/app | ERROR |
部署流程图
代码提交 → CI 构建镜像 → 推送至 Registry → Kubernetes 滚动更新