背景:
-
Win10+VSCode下安装了Python3.6.4和一些package,有的package在site-package路径下。
- 在已经安装了Python3.6.4之后,又安装了Anaconda,安装设置都是默认的。
Error出现:
这时再打开VS Code,出现很多同类型的Error: Unable to import '<packageName>'。ModuleNotFoundError: No module named 'pyautogui'
其实无论任何packageName都同理。
(以下是按照我个人安装路径陈述)经过研究发现,Anaconda安装完成之后,默认会在C:\ProgramData\Anaconda3下自带安装一个Python3.6.4版本。而这个新安装的Python路径C:\ProgramData\Anaconda3\Lib\site-packages中和原本安装的C:\Python3\Lib\site-packages中的package不一样。而且Anaconda安装好之后可以关联VSCode(从AnacondaNavigator中Lanch),所以此时VSCode默认运行的是C:\ProgramData\Anaconda3下的Python。
解决方案:
-
非推荐但最简单的方法:VSCode中File->Preferences->注释代码"python.pythonPath": "C:\ProgramData\Anaconda3"。如下图,再重新打开VSCode即可。
这种方法有个不好的地方就是既然安装了Anconda,就是希望用Anaconda管理自己的package,所以,这样注释之后,Anaconda就不起作用了。 - 推荐方法:把最先安装的Python卸载 (除非想用Anaconda执行不同版本的Python),然后添加如下 环境变量-系统变量:
C:\ProgramData\Anaconda3\
C:\ProgramData\Anaconda3\Scripts\
C:\ProgramData\Anaconda3\Library\bin\
C:\ProgramData\Anaconda3\Library\mingw-w64\bin\
C:\ProgramData\Anaconda3\Library\usr\bin\
(确保环境变量-系统变量中没有 C:\Python3\ 和 C:\Python3\Scripts\ )
然后打开cmd,python, 执行 pip install pyautogui 回车等待完成即可。
综上也可以联想到Anaconda正确的安装步骤(安装最后一步两个选项都check),
就算不卸载原Python也可以,这时直接到C:\ProgramData\Anaconda3\Scripts\路径中pip.exe重命名为condapip.exe和pip-script.py重命名为condapip-script.py。这样在cmd中执行
pip install pyautogui //对原安装的Python环境安装pyautogui包。
condapip install pyautogui //在Anaconda管理的Python环境下安装pyautogui包。
在VSCode中可根据File->Perferences->Settings用"python.pythonPath": "Python安装路径" 来控制从哪个Python环境执行。或者点击VSCode左下角的"Python 3.6 (32-bit)"选择需要执行的Python版本。
写这篇文章希望对Python和Anaconda初学者有所帮助,少走弯路。知乎有同步。
关于Anaconda和Python的知识还在摸索中,如有误导,欢迎各位大神留言更正,非常感谢!
热门评论
今天刚遇到了这个问题,原来是这样啊,多谢了