我在Windows 10中使用VSCode作为我的Python IDE。我在VSCode中使用wsl.exe作为我的终端。对于每个项目,我创建一个单独的venv(在wsl.exe中)并使用pip安装所有python模块/包依赖项。要运行python代码(在venv中)并进入和退出venv,我使用wsl.exe终端。
在我的venvs中,我有来自我的Ubuntu WSL的python 3.6.7。 VSCode python解释器是3.7.1。问题是尽管程序运行正常,但VSCode中的pylint无法找到导入。在每个venv中使用pip安装Pylint。
必须有一些设置告诉pylint查找来自venv的导入,而不是来自本地VSCode python解释器目的地。
我尝试设置"python.venvPath": "C:\\User\\username\\Desktop\\Python\\venvname"
但没有运气。我的venvs使用linux pyhton而我的VSCode使用的是Windows版本,这可能是个问题吗?
我还尝试创建一个特定于工作空间的pylint文件,并添加了#init-hook='import sys; sys.path.append("C:\Users\username\Desktop\Python\venv\lib\python3.6")'
虽然它删除了我打破linting的错误,因为现在我可以编写乱码导入。
虽然它不会使VSCode无法使用导入下的红线真的很烦人。
谢谢大家。
一种可能性是通过添加以下内容来修改settings.py
(当前项目的工作空间设置):
"python.pythonPath": "C:\\path\\to\\venvpath\\your-venv\\python"
你还必须添加
"python.linting.pylintPath": "C:\\path\\to\\venvpath\\your-venv\\pylint"
也适用于您的工作区设置。可能有必要将.exe
附加到可执行文件中(不确定,因为我在Linux上)。
如果这不起作用,我建议切换到用于创建虚拟环境的Python 3.6.7。但3.7.1应该可行。