虚拟环境中“由于环境错误而无法安装软件包:[Errno 1] 不允许操作”

Sha*_*wat 5 python sudo virtualenv windows-subsystem-for-linux ubuntu-18.04

我尝试使用virtualenvI type创建一个 python 虚拟环境virtuelenv env --python=python3 ,但出现错误

PermissionError: [Errno 1] Operation not permitted: '/mnt/d/venv/bin/python3'

所以我使用了命令sudo,因此输入sudo virtualenv env --python=python3

这次命令有效,现在我激活环境并尝试使用 pip 安装一些东西,我得到

Could not install packages due to an EnvironmentError: [Errno 1] Operation not permitted

我知道一个事实,如果pip与 sudo 一起使用,它将安装全局站点包的包,而不是虚拟环境的站点包。我想将东西安装到虚拟环境中。

我在 WSL 上运行 ubuntu bionic,我曾经运行 ubuntu xenial 并且没有遇到这个问题。

请指教。

Jul*_*ard 5

使用 WSL 时:在 Linux 层次结构中创建 venv,而不是 Windows 层次结构。

通常,这意味着在/home/YOUR_USER/而不是/mnt/....

  • 在 WSL 上,Windows™ 文件系统安装在 /mnt/ 中。如`D:\`挂载在`/mnt/d/`中。所以这是两个不同的文件系统(可能是 ext4 Linux 端和 NTFS Windows™ 端)。某些地方的某些代码可能在两个文件系统上表现不同,从而间接导致错误。不过,我没有窗口框可以检查和告诉更多信息,所以这只是我的猜测。(Windows™ 和 Linux 中的可执行文件也不同,前者使用 PE,后者使用 ELF,因此 Linux 可能无法使用 python.exe,反之亦然。) (2认同)