vscode-python: ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
Environment data
Version: 1.49.3 Commit: 2af051012b66169dde0c4dfae3f5ef48f787ff69 Date: 2020-10-02T17:56:11.027Z Electron: 9.2.1 Chrome: 83.0.4103.122 Node.js: 12.14.1 V8: 8.3.110.13-electron.0 OS: Linux x64 5.4.0-48-generic snap
Steps to reproduce:
python3 -m venv myenv
cd myenv
. bin/activate
code .
Then in vscode I get asked if I would like to install pylint. I click on “yes”.
The the error happens (this code was created/executed by vscode):
guettli@yoga15:~/projects/myenv$ source /home/guettli/projects/myenv/bin/activate
(myenv) guettli@yoga15:~/projects/myenv$ /home/guettli/projects/myenv/bin/python /home/guettli/.vscode/extensions/ms-python.python-2020.9.114305/pythonFiles/pyvsc-run-isolated.py pip install -U pylint --user
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
Expected behaviour
Since the interpreter is in a virtualenv, it would make sense to avoid --user
.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 19
- Comments: 18 (1 by maintainers)
#14327 I was trying to upgrade ‘pip’ in my virtual environment. I got the same error.
One quick fix is :
pyvenv.cfg
file in the Virtual environment folderinclude-system-site-packages
totrue
and save the changeworked perfectly for me, thanks!
As described in vscode#43347 setting
python.globalModuleInstallation": true
(Python: Global Module Installation) works for me as workaround.Pip can install software in three different ways:
I don’t think
"python.globalModuleInstallation": true
is a good solution.Virtualenv is great, and disk space is cheap.
Just run cmd as administrator
It can install in two ways: global or at the user level. It’s just that virtualenvs put you in a new root for python, so you end up installing globally. However, it would be nice if it was detected that the user was using a virtualenv, with modifiable flags, so we could change the default value of that parameter depending on the case.
@guettli Using
sudo
before command fixes the issue:sudo pip install package-name
'Great!
I can repro this.