python激活虚拟环境(venv)

当激活 Python 的虚拟环境(venv)时,激活脚本会对系统环境进行一系列临时修改,让终端的 Python 和相关工具使用虚拟环境中的版本和依赖。这些操作不会永久改变系统环境,只在当前终端会话中生效。


激活虚拟环境的操作详解

1. 修改 PATH 环境变量
  • 激活脚本会将虚拟环境的 bin(Linux/MacOS)或 Scripts(Windows)目录添加到环境变量 PATH 的开头。
  • 这样,虚拟环境中的 python 和 pip 等工具会被优先找到并执行,而不是系统全局的版本。
  • 修改后的 PATH 可能类似于:
    PATH=<venv_path>/bin:$PATH  # Linux/MacOS
    PATH=<venv_path>\Scripts;%PATH%  # Windows
    
  • 例如,运行 python 时,实际执行的是虚拟环境中的 python 二进制文件。

2. 设置 VIRTUAL_ENV 环境变量
  • 激活脚本会设置一个 VIRTUAL_ENV 环境变量,指向虚拟环境的根目录,例如:
    VIRTUAL_ENV=/path/to/venv
    
  • 这个变量可以被一些工具(如 IDE 或脚本)用来检测当前是否处于虚拟环境中。

3. 修改终端提示符(Prompt)
  • 激活脚本会修改终端的提示符(例如 PS1),在原有提示符前面添加虚拟环境的名称,以提醒用户当前处于虚拟环境中:
    (venv) user@hostname:~/project$
    
  • 这是通过调整 Shell 环境变量(如 PS1)实现的。

4. 使用虚拟环境中的 python 和 pip
  • 激活后,python 和 pip 命令都会指向虚拟环境中的可执行文件。例如:
    which python  # Linux/MacOS
    # 输出: /path/to/venv/bin/python
    
    where python  # Windows
    # 输出: C:\path\to\venv\Scripts\python.exe
    
  • 安装的 Python 库会被放到虚拟环境的 site-packages 目录中,而不是系统全局目录。

5. 加载虚拟环境的依赖
  • 虚拟环境内的 Python 自带一个隔离的 sys.path,该路径只包含虚拟环境中的 site-packages 目录。
  • 激活虚拟环境后,所有导入的库(import)都只会来自虚拟环境的依赖。

激活脚本实现方式

  • Linux/MacOS
    激活脚本是一个 Shell 脚本,路径为 <venv>/bin/activate
  • Windows
    Windows 提供多个激活脚本:
    • <venv>\Scripts\activate.bat(适用于 CMD)。
    • <venv>\Scripts\Activate.ps1(适用于 PowerShell)。

这些脚本的主要逻辑是修改 PATH 和其他环境变量。


总结

激活虚拟环境的核心是通过调整终端的环境变量来切换到隔离的 Python 环境,从而使用虚拟环境中的依赖和工具,而不影响系统全局环境。

注意:该内容由由AIGC提供。

### 大模型对齐微调DPO方法详解 #### DPO简介 直接偏好优化(Direct Preference Optimization, DPO)是一种用于改进大型语言模型行为的技术,该技术通过结合奖励模型训练和强化学习来提升训练效率与稳定性[^1]。 #### 实现机制 DPO的核心在于它能够依据人类反馈调整模型输出的概率分布。具体来说,当给定一对候选响应时,DPO试图使更受偏好的那个选项具有更高的生成概率。这种方法不仅简化了传统强化学习所需的复杂环境设置,而且显著增强了模型对于多样化指令的理解能力和执行精度[^2]。 #### PAI平台上的实践指南 为了便于开发者实施这一先进理念,在PAI-QuickStart框架下提供了详尽的操作手册。这份文档覆盖了从环境配置直至完成整个微调流程所需的一切细节,包括但不限于数据准备、参数设定以及性能评估等方面的内容。尤其值得注意的是,针对阿里云最新发布的开源LLM——Qwen2系列,文中给出了具体的实例说明,使得即使是初次接触此类工作的用户也能顺利上手。 ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments model_name_or_path = "qwen-model-name" tokenizer_name = model_name_or_path training_args = TrainingArguments( output_dir="./results", per_device_train_batch_size=8, num_train_epochs=3, ) trainer = Trainer( model_init=lambda: AutoModelForCausalLM.from_pretrained(model_name_or_path), args=training_args, train_dataset=train_dataset, ) # 假设已经定义好了train_dataset trainer.train() ``` 这段代码片段展示了如何使用Hugging Face库加载预训练模型并对其进行微调的过程。虽然这里展示的例子并不完全对应于DPO的具体实现方式,但它提供了一个基础模板供进一步定制化开发之用[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值