You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在组策略限制执行的网络驱动器上使用Python虚拟环境

问题背景
  • 个人文档存储在受组策略限制的网络驱动器上,组策略禁止直接从该驱动器运行.exe格式可执行文件
  • 原生venv创建虚拟环境的默认逻辑是将python.exe复制到虚拟环境目录内,启动时调用该副本,不会直接调用Program Files目录下安装的Python主程序
  • 此前尝试添加--symlinks、--system-site-packages参数创建虚拟环境,未实现调用主目录Python解释器的预期效果
复现命令与报错

执行创建命令:

python -m venv env

返回报错:

Error: [WinError 1260] This program is blocked by group policy. 
       For more information, contact your system administrator

报错翻译:错误:[WinError 1260] 该程序被组策略阻止,更多信息请联系系统管理员。

原因说明

Windows系统默认要求管理员权限才能创建符号链接,普通用户权限下执行带--symlinks参数的venv创建命令时,参数会静默失效,自动回退到复制可执行文件的逻辑,最终在网络驱动器上生成python.exe副本,触发组策略拦截。--system-site-packages参数仅控制虚拟环境是否继承全局安装的第三方包,不会改变解释器可执行文件的存放/调用逻辑,因此无法解决该问题。

可行解决方案
  • 方案1(优先推荐):将虚拟环境创建在本地磁盘不受组策略限制的路径下(例如C:\dev\envs\project_env),项目代码本身仍可存放在网络驱动器。创建时以管理员身份打开终端,执行命令强制使用符号链接:
    python -m venv --symlinks C:\dev\envs\project_env
    
    创建完成后正常激活虚拟环境即可,此时虚拟环境内的解释器为指向Program Files下主程序的符号链接,不会触发拦截。
  • 方案2:若没有本地磁盘写入权限,创建虚拟环境后手动替换可执行文件为符号链接:
    1. 先在目标路径创建虚拟环境,遇到报错时忽略,检查虚拟环境目录下的Scripts文件夹是否生成
    2. 删除Scripts目录下的python.exe、pythonw.exe两个可执行文件
    3. 以管理员身份打开终端,执行以下命令创建符号链接,将路径替换为你本地Python的实际安装路径:
      mklink "X:\你的虚拟环境路径\Scripts\python.exe" "C:\Program Files\Python311\python.exe"
      mklink "X:\你的虚拟环境路径\Scripts\pythonw.exe" "C:\Program Files\Python311\pythonw.exe"
      
    4. 后续正常激活虚拟环境使用即可,调用的解释器为Program Files下的主程序。
  • 方案3:替换虚拟环境工具,使用支持解释器重定向的virtualenv替代原生venv,安装后创建虚拟环境时指定--symlink-app-data参数即可,同样需要管理员权限执行。
验证方式

激活虚拟环境后执行where python,确认返回的虚拟环境内python.exe路径的类型为符号链接,指向Program Files下的主解释器路径;执行python -c "print('hello')"无组策略报错即为配置成功。

内容的提问来源于stack exchange,提问作者Jean-Michel Bouchard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:48:18