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?那就无视这段话吧

其他功能

  • 直接从url安装模块

  • [各种命令的详细参数](https://pipenv.readthedocs.io/en/latest/

)

插件

进入项目目录自动激活虚拟环境,这个似乎只是针对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)