pipenv 和 pycharm

前言

IDE 的确是在各个方面为我们的项目开发锦上添花,但是却给我们带来了另一种困惑——它为我们屏蔽了太多的环境搭建方面的细节,对于喜欢刨根问底的作者来说确实不太友好。

最近迷上了机器学习,想要自己搭建一个 pycharm
环境,听说 pipenv 对于目前的 python 包管理是个利器,但始终是一知半解的。

关于python和pip

python是一个脚本语言,只要一个文本就可以跑起来代码,不需要像 C++ 还搞什么编译环境,也不需要 main 函数,只要运行时相关包可以调用就行了。

import#include<> 到是很像,只不过 import 需要用到的包,只要运行时能找到就可以。
那么,这些包哪里来?

pip!!!

早期的包管理工具都是通过 pip 来安装的,可以选择本地和在线安装。windows 平台 python 默认安装在 C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36 目录,通过 pip 方式安装的包也都默认安装在 C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages 目录下。

但是这造成一些问题。
第一个就是,通常安装的包是有版本的!而我们可能在开发不同项目时,不同项目需要使用某个包的不同版本,这就带来了问题,怎么办?项目迁移了,另一台机器上的包版本和原来的机器不一样怎么办?
第二个是,在迁移项目时,pip 提供了导出 requirements.txt 文件的方法,这个文件记录了当前机器上(或者项目)用到的包、及版本信息。但是这样仍然很不方便。

后来就有了 virtualenv 来解决这个问题,它可以把多个项目的依赖包隔离开,最简单的方式就是每个项目的依赖包放到不同文件夹中,互不影响。但是具体的我不是很理解...

在后来,我就听说了一个叫 pipenv 的东西,可以说是 pipvirtualenv 的结合。

pipenv

怎么使用?
首先当然先用 pip 安装 pipenv 工具:

pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple/

然后呢?
在项目目录下打开终端,用 python3 初始化项目环境:

pipenv --three

这个命令会在当前项目文件夹(比如项目叫 test)下创建 PipfilePipfile.lock 文件,类似 C++ 项目的 CmakeList

Pipfile.lock 这时候不一定创建,但是后面在用 pipenv 安装某个包后,一定会创建。

同时!会在 ~\.virtualenvs\ 目录下创建类似 test-rG1aPCqB 的目录。这就是我们隔离开的项目依赖环境。

该环境可通过 pipenv --venv 查看

打开 ~\.virtualenvs\test-rG1aPCqB\ 看看,可以说和 python 安装目录很像了:

pipenv 和 pycharm_第1张图片
目录.png

看看 ~\.virtualenvs\test-rG1aPCqB\Scripts\ 下有什么:

目录2_.png

emmm,python.exe...解释器!可以说应该是整个环境复制过来了。

pycharm

讲这么多废话,到底 pycharm 中怎么创建环境???进入设置:
File->Settings->Project:->Project Interpreter
这里让我们选的是解释器,选中我们刚才新创建环境的 python.exe 就行了,IDE 会知道我们用的隔离环境的。
具体做法是,点后面的设置图标,然后添加解释器就行了,如下图:

pipenv 和 pycharm_第2张图片
ide.png

Existing Interpreter,就选我们新建的 ~\.virtualenvs\test-rG1aPCqB\Scripts\python.exe 好了。

为什么只选解释器?难道不是环境吗目录?我也不知道,我也不敢问,选就是了,IDE 会知道你用的隔离环境的。

写在文末

环境这种东西,个人偏向于 terminial 命令行方式创建,包括后面的安装依赖包,也推荐命令行安装,尽管 IDE 图标方式很便捷,但是不利于理解, 除非你是老司机,对环境配置了如指掌。

以下附赠部分命令供参考,更多详情请移步官方文档,毕竟官方的比较详细,道听途说比较片面化:

pipenv --three # 会使用当前系统的Python3创建环境 
pipenv --two # 使用python2创建 
pipenv --python 3.6 指定某一Python版本创建环境 
pipenv run python 文件名 pipenv run pip ...# 运行pip 
pipenv shell 激活虚拟环境 
pipenv --where 显示目录信息 
pipenv --venv 显示虚拟环境信息 
pipenv --py 显示Python解释器信息 
pipenv install requests 安装相关模块并加入到Pipfile 
pipenv install django==1.11 安装固定版本模块并加入到Pipfile 
pipenv graph # 显示依赖图 
pipenv check #检查安全漏洞 
pipenv lock # 生成lockfile
pipenv update # 更新所有的包
pipenv --rm # 删除虚拟环境
pipenv uninstall requests # 卸载包并从Pipfile中移除 
pipenv uninstall --all # 卸载全部包

你可能感兴趣的:(pipenv 和 pycharm)