Errno 13在WSL中,即使是root用户,也拒绝virtualenv权限

时间:2019-08-05 08:26:41

标签: python pip setuptools windows-subsystem-for-linux

我正在使用Windows Desystem for Linux,运行Debian,已升级为Buster。我还通过远程开发配置了Visual Studio Code。卸载python2.7,并通过创建符号链接/usr/bin/python -> /usr/bin/python3将python3设置为默认设置。

因此,在主目录中,以当前用户身份创建一个virtualenv:python -m virtualenv -p python3 venv,一切正常。

然后我将其激活。我主要使用鱼,但是运行bash时也会出现此问题。 source venv/bin/activate.fish。一切都很好,它有效。

然后,我尝试安装我的软件包python setup.py install,它可以正常工作:

running install
running bdist_egg
running egg_info
writing myproj.egg-info/PKG-INFO writing dependency_links to myproj.egg-info/dependency_links.txt
...

然后继续安装依赖项。

Reading https://pypi.org/simple/jmespath/
Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl#sha256=3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6
Best match: jmespath 0.9.4
Processing jmespath-0.9.4-py2.py3-none-any.whl
Installing jmespath-0.9.4-py2.py3-none-any.whl to /home/ap/projects/myproj/venv/lib/python3.7/site-packages
error: [Errno 13] Permission denied: '/home/ap/projects/myproj/venv/lib/python3.7/site-packages/jmespath-0.9.4-py3.7.egg/jmespath-0.9.4.dist-info' -> '/home/ap/projects/myproj/venv/lib/python3.7/site-packages/jmespath-0.9.4-py3.7.egg/EGG-INFO'

所有目录均具有权限,我是所有者,并且可以从CLI创建符号链接。我什至尝试通过先使用sudo su提升权限,并仍然获得“权限被拒绝”来实现此目的。

我尝试将pip和setuptools降级为主要版本,但没有帮助。我已经在Linux上无数次这样做了,而且一切正常,我只是不知道可能是什么原因造成的。

pip list输出:

Package    Version
---------- -------
pip        19.2.1
setuptools 41.0.1
wheel      0.33.4

1 个答案:

答案 0 :(得分:0)

显然,这是因为基础文件系统是NTFS,而Linux处理打开文件的方式与Windows不同。从WSL打开文件后,显然已经对其进行了锁定,并且无法覆盖它。因此,唯一有效的方法是关闭Visual Studio Code,执行安装,升级等操作,然后重新打开它。

这是一种狂野的预感,所以请带一点盐。