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

双系统Pop!_OS挂载Windows分区无法创建Python虚拟环境求助

双系统下Windows分区创建Python虚拟环境失败的解决办法

在Pop!_OS与Windows双系统环境中,Linux文件系统内可正常创建Python虚拟环境,但在挂载的Windows非C盘分区执行python -m venv venv或virtualenv --python=/usr/bin/python3 venv时均报错:

  • 使用venv时的错误:
    Error: Command '['/media/parsa/D2942F56942F3BFB/.../venv/bin/python3', '-m', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
    
  • 使用virtualenv时的错误:
    OSError: [Errno 5] Input/output error: '/usr/bin/python3' -> '/media/parsa/D2942F56942F3BFB/.../venv/bin/python'
    

问题根源

Windows分区多为NTFS格式,默认在Linux下挂载时不支持Linux的软链接、精细文件权限控制,而Python虚拟环境创建过程中需要:

  1. 创建指向系统Python解释器的软链接(virtualenv报错就是因为无法创建这个链接)
  2. 修改文件权限以完成ensurepip的初始化(venv报错的原因)
    这些操作在默认挂载的NTFS分区上无法执行,导致报错。

解决方法

1. 临时重新挂载分区(立即生效,重启后失效)

先卸载当前挂载的Windows分区:

sudo umount /media/parsa/D2942F56942F3BFB

用lsblk命令查看你的Windows分区设备名(比如/dev/sda3),然后重新挂载并添加支持软链接和权限的参数:

sudo mount -t ntfs-3g /dev/sdXn /media/parsa/D2942F56942F3BFB -o defaults,user,exec,uid=1000,gid=1000,umask=0022,acl,metadata,nostrictatime

注意:把命令里的/dev/sdXn替换为实际的分区设备名。

2. 永久修改挂载配置(重启后依然生效)

先获取分区的UUID:

blkid /dev/sdXn

复制输出中的UUID字符串(格式类似UUID=D2942F56942F3BFB),然后编辑fstab文件:

sudo nano /etc/fstab

在文件末尾添加一行配置:

UUID=D2942F56942F3BFB /media/parsa/D2942F56942F3BFB ntfs-3g defaults,user,exec,uid=1000,gid=1000,umask=0022,acl,metadata,nostrictatime 0 0

保存并退出编辑器(按Ctrl+O回车保存,Ctrl+X退出),最后执行以下命令让配置立即生效:

sudo mount -a

3. 替代方案(无需修改挂载)

如果不想调整挂载参数,可直接在Linux文件系统内创建虚拟环境,然后在Windows分区的项目中通过绝对路径调用虚拟环境的Python解释器(比如/home/parsa/venvs/myenv/bin/python),或者在支持软链接的前提下,把虚拟环境链接到Windows分区的项目目录中。

内容的提问来源于stack exchange,提问作者ParsaAi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:05:15