我安装了python虚拟环境。我用vs代码。我在代码中导入了scrapy,而vs代码无法识别该模块。实际上,当我运行它时,它运行良好。 scrapy crawl tester
Just,vs代码显示红色下划线,表示“无法导入scrapy”,所以这只是vs代码问题,而不是venv或scrapy软件包安装问题。
此代码可以正常工作,并且reallay,scrapy可以毫无问题地导入。这只是vs代码问题。谢谢。
答案 0 :(得分:2)
通过使用CTRL + Shift + P向项目添加“ Python:选择解释器”,您也许可以解决问题。
答案 1 :(得分:0)
遇到相同的问题-在VS Code中选择了正确的Python解释器,pip安装了所有所需的Python库,但是import
在VS Code中仍带有下划线。
您需要做什么
对我有用的是确保您在此VS Code实例(我在使用pylint)中使用的linter来自虚拟环境的bin
文件夹,而不是其他位置。
如何做
我将使用指向所需虚拟环境/User/ProjectFolder/env
的绝对路径作为示例。
要检查您是否满足您需要做什么中所述的条件,请按settings.json
+ ⌘
在VS Code中切换,
文件:
"python.pythonPath":/User/ProjectFolder/env/bin/python3
。bin
文件夹中,而不是其他位置。即"python.linting.pylintPath":/User/ProjectFolder/env/bin/pylint
,不类似"python.linting.pylintPath":/usr/local/bin/pylint
。这意味着您必须在虚拟环境中安装所需的linter。
希望这会有所帮助。
答案 2 :(得分:0)
如果你创建了一个虚拟环境并激活它
在 macOS/Linux 上输入 which python
,
在 Windows 上输入 where python
,
在激活的终端会话中。
(env) userpc@pc:~$ which python
/home/userpc/Desktop/foldername/env/bin/python
在 VSCode 中按 Ctrl+Shift+P,在 >Select Interpreter
下粘贴您使用前一个命令收到的位置。
完成后,重新启动 VSCode。 VSCode 还会要求您在您的环境中安装 pylint,如果没有,您可以通过激活您的环境并键入
pip install pylint
在激活的终端会话中。
答案 3 :(得分:0)
我尝试了对我有用的@cleon-w 的答案。 (感谢克莱昂)
我在 Mac M1 (Big Sur) 上使用 pyenv 和 vscode。 vscode 无法解决 pyenv 提供的 python 路径,所以我查看了 pyenv 脚本以找到绝对路径 到底层 python 和 pylint 文件。
正如@Cleon W 所说,我确保 pylint 和 python 在同一个 bin 目录中。
然后编辑 VS Code settings.json 以直接指向它们(绕过 .pyenv)并且可以找到导入。
settings.json (vscode)
"python.defaultInterpreterPath": "/Users/USERNAME/.pyenv/shims/python",
"python.pythonPath": "/Users/USERNAME/.pyenv/versions/3.9.1/bin/python",