问题的引入
python -m pip list
看一下pip安装的包:
PyCharm新建工程:
新建first.py:
问题来了,明明pip已经install了numpy,为什么import numpy as np还是报错呢
PyCharm自己创建的虚拟环境
原因在于,我们一开始在命令行中:
这里显示的是本机安装Python时,该Python(可以称之为系统Python)库中的包,但是
PyCharm在创建工程时,会基于系统Python自动创建一个独立的Python运行环境,为了直观,我们重新新建一个工程:
但这次注意,把红线标注的“Project Interpreter:New Virtuallenv environment”拉下来看一下:
可以看到,默认使用Virtualenv新建了一个environment,这个环境的位置是:
D:\PycharmWorkspace\fifthPro\venv,即项目目录下的venv目录,而base interpreter就是我们安装的Python.exe,一言以蔽之:
PyCharm会自动基于系统Python在项目目录下使用Virtualenv工具创建虚拟环境venv。
PS:Virtualenv是创建Python虚拟环境的工具,类似的工具有venv,pipenv,virtualenvwrapper,conda等等。
问题搞明白了,那么该如果解决呢 —— PyCharm中使用系统Python中安装的包?
问题很简单,在新建项目时勾选Inherit global site-packages即可:
这样就可以继承系统库了。
PS:global即代表系统Python,site-packages即系统Python下Lib目录下的site-packages目录(系统包所在的位置)。
如果创建工程时没有勾选,也可以在项目创建后,在settings —— Project XXX —— Project Interpreter中修改:
选择不同的编译器,可以看到该编译器下的包:
当然,为了方便,我是这样做的:专门新建一个工程,用于提供一个新的专门Python interpreter :
这样,下次别的工程就可以选这个Python interpreter了:
当然,其实不推荐使用系统库,因为不同项目使用的包是各异的,不可能都安装在系统库中然后通过继承来引用,这样对于一个项目来说,其中大多数的包都是无用的。推荐使用独立的Python虚拟环境工具来创建Python环境的方式,我使用的Anaconda来管理Python环境,关于这个可以看我其他的文章:
Anaconda初探
conda的基本命令
PyCharm使用Anaconda虚拟环境