Author: haoransun
WeChat: SHR—97
初次使用Pycharm的时候,可能会对于解释器的配置有些疑问,因为PyCharm支持以下4种Python Interpreter:
- Virtualenv Environment
- Conda Environment
- System Interpreter
- Pipenv Environment
1. Virtualenv Environment
1.1 Virtualenv Environment是什么?
Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用global library 和 interpreter),例如程序A需要某个库的1.0版本,而程序B需要同样这个库的2.0版本,如果程序B执行,则A就不能执行了。
virtualenv,是一款Python工具,用以创建独立的Python虚拟环境。在一个Python虚拟环境中,持有Python所必须的依赖库,形成Python的虚拟运行空间。
1.2 如何使用Virtualenv Environment?
打开Pycharm的Virtualenv Environment配置界面,发现存在两种配置方式:
1.2.1. New environment
采用Pycharm中的New environment
直接创建
Pycharm集成virtualenv
工具后,使用起来变的非常方便。
需要配置的项:
Location:指定创建虚拟环境的目录。
一般创建虚拟环境都是一个项目可能创建一个虚拟环境,所以最好将环境创建在你运行的项目的根目录下。
这里我运行的项目是
D:\WorkSpace\RepetitionCode
目录下的Mask_RCNN-master
。所以目录选择在:D:\WorkSpace\RepetitionCode\Mask_RCNN-master\venv
。Base Interpreter:指定电脑上存在的Python编译器的目录。
可以是你安装的Python,也可以是你使用anaconda创建的虚拟Python。
我用的anaconda自带python3.7。但是我这里想要使用Python3.6。所以我已经用anaconda创建了一个py36的虚拟环境。所以我指定的是虚拟Py36的所在目录
D:\CodingSoftware\Anaconda3\envs\py36\python.exe
。关于如何用conda创建虚拟环境的详细内容,请看anaconda笔记
Inherit global site-packages :勾选该选项后则可以使用Base interpreter中配置的python环境所安装的所有组件,不选将和外界完全隔离,不加载Base interpreter中配置的python环境下的包,也就是一个干净的环境,需要自己重装安装所需的包;
Make available to all projects:表示可将此虚拟环境提供给所有项目使用。
然后点击OK
按钮。
会发现在D:\WorkSpace\RepetitionCode\Mask_RCNN-master
目录下生成了一个venv
文件夹:
此时看一下此环境下的包:
1.2.2. Existing environment
看一下Existing environment
中只需要配置一项任务:Interpreter
。这个就是指定你的电脑中已经存在的一项虚拟环境目录。
已经存在的虚拟环境目录可以是:
自己通过控制台建立的一个新的虚拟环境目录(conda create -n …)
自己以前通过
New environment
创建的虚拟环境的目录。比如: 新建项目
Python
,解释器选择Virtualenv下的Existing environment
,将上一步创建的虚拟环境导入。
看一下环境,和刚刚的环境一样:
2. Conda Environment
2.1 Conda Environment是什么?
Conda Environment
就是使用Anaconda中带有的Python解释器。
安装Anaconda软件,Anaconda会自带很多的包,其中包括Python解释器。因此如果电脑中安装了Anaconda软件,也可以使用Anaconda里面附带安装的Python解释器或者通过Anaconda创建的虚拟Python解释器。和上面的操作类似。
2.2 如何配置 Conda Environment?
打开Pycharm的Conda Environment配置界面,发现存在两种配置方式:
和上面一样的两种方式:
2.2.1. New environment
使用Anaconda创建一个新的虚拟Python环境。Anaconda会帮我们下载所指定的Python版本。
需要配置的项:
Location:指定通过Anaconda创建虚拟环境的目录。
Anaconda创建的虚拟环境一般在Anaconda安装目录下的envs目录下。
我安装的Anaconda目录是:
D:\CodingSoftware\Anaconda3
,所以目录选择在:D:\CodingSoftware\Anaconda3\envs\py38
。Python version:安装python版本号。
可以是你安装的Python,也可以是你使用anaconda创建的虚拟Pyhon,不存在会替你自行下载。
我用的anaconda自带python3.7。但是我这里想要使用Python3.6。所以我已经用anaconda创建了一个py36的虚拟环境。所以我指定的是虚拟Py36的所在目录D:\CodingSoftware\Anaconda3\envs\py36\python.exe
。
Conda executeable:安装的Anaconda执行器的文件路径。
Make available to all projects:勾选后,表示可将此虚拟环境提供给所有项目使用。
然后点击OK
按钮。
会发现在D:\CodingSoftware\Anaconda3\envs
目录下生成了一个py38
文件夹:
你可以激活此虚拟环境,查看版本信息:
2.2.2. Existing environment
看一下Existing environment
中需要配置的任务:
Interpreter
。这个就是指定你的conda虚拟环境中已经存在的一项解释器目录。
发现我的conda下面存在3个解释器可以选择。
1)下载Anaconda自带的解释器(anaconda的科学库大都在此,没有特殊需求,勾选它)
2)通过Anaconda prompt建立的一个Python3.6
3)上一步通过pycharm创建的一个Python3.8
Conda executeable:安装的Anaconda执行器的文件路径。
Make available to all projects:勾选后,表示可将此虚拟环境提供给所有项目使用。
你可选择一个虚拟器使用,但是这里的每个环境都是共用的。
3. System Interpreter
system interpreter表示本地的解释器。
选择系统里面安装的Python作为解释器,不推荐使用。也就是加载系统中存在的解释器。
要在PyCharm中使用Python代码,您需要配置至少一个解释器。系统解释器是Python安装随附的系统解释器。您可以仅将其用于所有Python脚本,也可以将其用作Python虚拟环境的基本解释器。
3.1 如何配置系统Python解释器?
确保已在计算机上下载并安装了Python。
如果您使用的是Windows,则可以从Microsoft Store下载Python,并将其安装为Python解释程序。从Microsoft Store下载Python应用程序后,它就可以在Python可执行文件列表中找到。
在“Interpreter”字段中,键入所需解释器可执行文件的标准路径,或单击浏览按钮然后在打开的“ 选择Python解释器”对话框中,选择所需的Python可执行文件,然后单击“确定”。
4. Pipenv Environment
4.1 Pipenv是什么?
Pipenv是一种工具,提供了为Python项目创建虚拟环境所需的所有必要手段。在您安装或卸载软件包时,它会通过Pipfile文件自动管理项目软件包。
pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。
Pipenv还会生成Pipfile.lock文件,该文件用于生成确定性构建并创建工作环境的快照。当项目要求和程序包版本很重要时,这对于对安全敏感的部署特别有用。有关pipenv更多详细信息,请参阅项目文档pipenv。
4.2 如何配置 Pipenv Environment?
4.2.1 准备步骤
要将Pipenv与PyCharm结合使用,您需要执行几个准备步骤。
运行以下命令以确保系统中已安装pip:
1
$ pip --version
pipenv通过运行以下命令进行安装:
1
$ pip install --user pipenv
安装完成后,您将看到以下消息:
为了方便起见,可以将用户库的二进制目录添加到PATH环境变量中。如果您跳过此过程,PyCharm将在添加pipenv环境时提示您指定pipenv可执行文件的路径。
可以随时在项目设置中更改pipenv可执行文件的指定路径。在File / Settings中找到Tools | Python Integrated Tools ,然后在Path to Pipenv executable字段中输入目标路径 。
准备步骤完成后,您可以使用pipenv为新项目或现有项目创建虚拟环境。
4.2.2 为新的Python项目设置pipenv
创建一个新的Python项目PipenvTest。
在“Create Project”对话框中,选择New environment using,然后从可用虚拟环境列表中选择Pipenv。
如果已将用户库的二进制目录添加到PATH环境变量中,则无需设置任何其他选项:pipenv可执行文件的路径将被自动检测。
点击Create。
打开Settings
发现当前的环境:
4.2.2 为现有的Python项目配置pipenv
先从该项目中删除刚刚添加的环境:
在Add Python Interpreter 对话框的左侧窗格中,单击Pipenv Environment。
如果已将用户库的二进制目录添加到PATH环境变量中,则无需设置任何其他选项:pipenv可执行文件的路径将被自动检测。
如果您看到“找不到Pipenv可执行文件”错误消息,请按照上面pipenv安装过程查找可执行文件路径,并将其添加到Pipenv可执行文件字段。
单击确定以完成任务。
5. 问题
为什么我用conda environment创建的interperter显示的包特别少呢?但是我用System Interpreter,并把anaconda安装位置下的python设置成系统默认的,这样显示的包就特别多。这个问题怎么解决呢?还是我哪里出了问题? 还有一个问题:我想使用tensorflow这个包,安装好anaconda后,发现不包含tensorflow这个包,我可以通过pycharm直接下载并添加吗?这样做会出现不兼容的问题吗?
可以看一下你用conda environment导入的python环境是不是你conda自带的那个python解释器,有可能导入的是你自己利用conda重新建的虚拟python环境,所以导入的包很少。你Anaconda的安装目录下的envs文件夹里存放你使用conda新建的虚拟python环境,你应该在conda environment处选择Existing environment并且选择Anaconda3/python.exe这个解释器。
5.1 推荐使用方式 virtualenv 和 conda
virturalenv(多项目多环境多版本多开发)
因为没有勾选继承全局包,所以非常干净,有什么需要自己去下载。
新建python文件夹,文件夹下新建Python文件,venv基本不要动。
conda (简单继承)
没什么新需求的话,直接继承anaonda下载时附带的python
可以看到此处有许多anaconda自带的版本,基本够用,不用再去下载(如果不是多项目并行开发的话)
conda (独立环境)
conda -create -n …
自行下载相关package