Linux下安装pipenv

Linux下安装Pipenv

前言

因为manjaro自带了python,而且在滚动更新的优势下,python版本是最新的,没必要再装anacondaminiconda,我只需要一个包管理器,因此感觉不必使用这种二次发行版。

Pipenv简介

pipenv是python的包管理器,据说是requests的作者开发的?它结合了pip和virtualenv两个命令,有以下几个特点

  • 不需要再分别使用pipvirtualenv
  • 无需手动维护requirements.txt,依赖列表可以通过Pipfile自动维护

安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

注意,此时pip的模块安装在/usr目录下,如果要使用pip安装模块,需要通过–user为用户安装

安装pipenv

pip install --user pipenv

这安装在了用户的$HOME/.local/bin目录下,需要自行将该目录添加到PATH中

打开.bashrc,添加

export PATH="家目录/.local/bin:$PATH"

pipenv的更新

pip install --user --upgrade pipenv

使用pipenv

初始化虚拟环境

pipenv --three # python3
pipenv --two # python2

这会在当前目录下创建一个Pipfile文件,自动记录所有安装的和卸载的模块

进入虚拟环境,

pipenv shell

注意,直接使用这个命令可以自动初始化虚拟环境

退出虚拟环境

exit

修改源

vim Pipfile

将[source]下的url那栏修改为清华镜像源

url = "https://pypi.tuna.tsinghua.edu.cn/simple"

目前好像没有设置默认源的方法,可能每个虚拟环境都要自行设置源,给一个稍微方便的方法,因为在Pipfile同目录下,可以使用

sed -i 's/pypi.org/pypi.tuna.tsinghua.edu.cn/g' Pipfile

来更改url
所以我就在.zshrc(或你的.bashrc)中加了一行

alias tsinghua="sed -i 's/pypi.org/pypi.tuna.tsinghua.edu.cn/g' Pipfile"

这样在创建完虚拟环境之后,直接输入

tsinghua

就可以自行修改源了

与pip的交互

安装requirements.txt的模块并记录到Pipfile

pipenv install -r requirements.txt

生成可供pip使用的requirements.txt

pipenv run pip freeze >> requirements.txt

安装模块

pipenv install # 比如 pipenv install numpy==1.15.4

安装项目的所有依赖

pipenv install --dev

根据Pipfile安装项目的依赖

卸载模块

pipenv uninstall 
pipenv uninstall --all # 卸载所有模块

查看一些位置

pipenv --where # 项目位置
pipenv --venv # 虚拟环境位置
pipenv --py # 解释器位置

移除虚拟环境

pipenv --rm

查看目前安装的依赖

pipenv graph

关于pipenv lock命令

pipenv lock生成了一个Pipfile.lock,其中记录了模块的版本,默认情况下在Pipfile中并没有模块的版本(除非你使用pipenv install numpy==1.15.4这样的命令来安装)
如果新的版本的模块使得我们代码中功能无法使用的话,我们可以通过Pipfile.lock安装模块,这样固定了我们最初搭建虚拟环境时使用的模块版本,使用Pipfile.lock进行安装的命令

pipenv sync

不过带上Pipfile.lock的时候,安装模块会自动lock,过程会很慢,因此建议一切依赖部署好了之后再使用pipenv lock,em,不知道输了什么命令,好像自动会lock?那就无视这段话吧

可以通过 --skip-lock 来跳过lock阶段

其他功能

  • 直接从url安装模块
  • 各种命令的详细参数

插件

进入项目目录自动激活虚拟环境,这个似乎只是针对fish shell的插件

参考

[1]https://github.com/pypa/pipenv/issues/954
[2]https://github.com/rwillmer/pipenv/commit/835196dd0f0ceea1788cc36f870bf1724c6c4438
[3]https://github.com/pypa/pipenv/

你可能感兴趣的:(Linux下安装pipenv)