Ale*_*rMP 5 python pip setuptools windows-subsystem-for-linux
我正在使用适用于 Linux 的 Windows 子系统,运行 Debian,已升级到 Buster。我还使用远程开发配置了 Visual Studio Code。卸载了 python2.7,并通过创建 symlink 将 python3 作为我的默认值/usr/bin/python -> /usr/bin/python3。
因此,在我的主目录中,作为当前用户,我创建了一个 virtualenv: python -m virtualenv -p python3 venv,一切都很好。
然后我继续激活它。我主要使用fish,但是运行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
...
Run Code Online (Sandbox Code Playgroud)
然后继续安装依赖项。
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'
Run Code Online (Sandbox Code Playgroud)
所有目录都有权限,我是所有者,并且可以从 CLI 创建符号链接。我什至尝试通过首先使用 提升权限来做到这一点sudo su,但仍然收到“权限被拒绝”。
我尝试将 pip 和 setuptools 降级为主要版本,但没有帮助。我已经在 Linux 上这样做了无数次,一切都很好,我只是不明白这可能是什么原因。
pip list输出:
Package Version
---------- -------
pip 19.2.1
setuptools 41.0.1
wheel 0.33.4
Run Code Online (Sandbox Code Playgroud)
显然这是因为底层文件系统是 NTFS,而 Linux 处理打开文件的方式与 Windows 不同。一旦文件从 WSL 打开,显然它就被锁定了,并且不能被覆盖。因此,唯一有效的方法是关闭 Visual Studio Code,进行安装、升级等操作,然后重新打开它。
这是一种疯狂的预感,因此请持保留态度。
| 归档时间: |
|
| 查看次数: |
6560 次 |
| 最近记录: |