搞懂pipenv和pyenv

目录

 

Pipenv

安装

centos

mac

ubuntu

基本命令

修改默认源头

与pip的交互

Pipfile与Pipfile.lock

pyenv

安装

centos

ubuntu

mac

基本命令


Pipenv

安装

pipenv用来做python包和环境的管理。

centos

#首先查看是否按章pip了,
pip --version
#如果没有安装
sudo yum install python-pip
#最后
pip install pipenv

mac

brew install pipenv

ubuntu

#首先查看是否按章pip了,
pip --version
#如果没有安装
sudo apt-get install python-pip
#最后
pip install pipenv

基本命令

一般来说,你需要创建一个项目目录,然后cd进入该目录

# 创建虚拟环境
pipenv install                # 创建指定python2.x版本的虚拟环境(系统自带的python版本)
pipenv install --python3.x  #创建指定python版本的虚拟环境
pipenv install --two            ##创建指定python2.x版本的虚拟环境(系统自带的python版本)
pipenv install --three    ##创建指定python3.x版本的虚拟环境(系统自带的的python版本)
# 删除虚拟环境
pipenv --rm    # 删除虚拟环境(注意:这并不会删掉当前环境下的Pipfile和Pipfile.lock文件)
# 激活虚拟环境
pipenv shell                #激活虚拟环境

#退出虚拟环境
exit
#安装python包
pipenv install [packagename].  # 安装在当前环境下的python包
pipenv install django==1.11  # 安装指定版本的python包
pipenv install django==1.11 --dev # 安装指定版本的python包,此时是开发依赖。
pip list # ;列出当前环境下的已经安装的python包
pipenv uninstall [packagename]  # 卸载在当前环境下的python包
pipenv uninstall  --all # 卸载全部包
# 注意当安装包命令后缀 --dev 表示是安装开发环境包,当你将你的Pipfile文件给别人时,通过pipenv install 是不会安装开发环境依赖的包的,只安装生产环境的包。除非你也后缀--dev

# 其他操作
pipenv --py   # 显示Python解释器信息
pipenv --venv # 获取虚拟环境目录路径(如果你想完全删除环境,也需要手动删除这个文件)
pipenv graph  # 查看目前安装的库及其依赖
pipenv run python "python文件.py"  # 运行python文件
pipenv lock                        # 更新Pipfile.lock文件锁定当前环境的依赖版本

修改默认源头

vim Pipfile
# 将[source]下的url那栏修改为清华镜像源
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

与pip的交互

# 安装requirements.txt的模块并记录到Pipfile中
pipenv install -r requirements.txt

# 生成可供pip使用的requirements.txt
pipenv run pip freeze >> requirements.txt
# 或者
pipenv lock -r --dev > requirements.txt

Pipfile与Pipfile.lock

pipenv lock # 生成一个Pipfile.lock文件
" 注意:当你使用pipenv install [package] 如果你没指定包的版本,也就是没指定package == ???,那么Pipfile中记录的包的版本是"*",即当前包的最新版本。"
" 那么你用pipenv install 命令安装pipfile记录的依赖包时会出现和之前依赖包版本不一致的情况,因为包不断的更新,而你安装的总是最新的。"
" pipfile.lock中记录的是你依赖包的具体版本号(不管你安装时是否指定了包的版本),因此最理想的就是根据pipfile.lock安装项目依赖,这样不会出现版本不一致的情况。"
pipenv sync
# 最理想的是,当你项目完全开发完后,使用pipenv lock,然后将Pipfile和Pipfile.lock上传,最后执行pipenv install 安装依赖。

pyenv

安装

pyenv主要用来做python版本管理。

pyenv安装前首先要确保git是安装好的,否则先安装git,顺便一起安装好依赖。

centos

//centos
yum -y install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel git

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# 如果你的shell是bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec $SHELL

# 如果你的shell是zsh
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
exec $SHELL

ubuntu

"依赖"
sudo apt update
sudo apt-get update
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
sudo apt install -y libedit-dev

#正式安装
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

Tips: 在执行curl那一条命令时有可能出现curl: (7) Failed to connect to raw.githubusercontent.com port 443。这时需要在配置hosts文件,详见博客。

mac

brew install pyenv
配置和centos一样,根据shell是zsh还是bash来配置。

基本命令

pyenv version   			//查看当前python版本
pyenv versions   			//查看已安装的所有python版本
pyenv global 版本号  	//设置全局python,例如 pyenv global 3.6.6
pyenv global system		// 将全局python设置为系统默认
pyenv install 版本号		//安装指定版本的python
pyenv uninstall 版本号	//删除python版本或者虚拟环境
pyenv install --list	//列出所有可以安装的python版本
pyenv which python    //显示当前python安装路径

 

你可能感兴趣的:(python基础知识学习,python,linux,django)