python开源社区搭建_爽到爆的Python本地开发环境搭建

一:概述

众所周知 python 开发过程中各种版本共存是比较常见的事情,所以就要求我们本地有一个可以快速创建,自由切换不同 python 版本的环境,尝试不同方案后推荐如下组合,希望可以给来帮助。

1. pyenv

主要侧重管理本地不同python版本

2. virtualenv

主要侧重于本地不同项目之间版本差异管理

3. virtualenvwrapper

从名字就可以看出是对 virtualenv 的封装,更便捷高效的使用virtualenv

二:安装

pyenv

github地址:https://github.com/pyenv/pyenv,README里有详细安装步骤

virtualenv,virtualenvwrapper

文档地址

https://virtualenvwrapper.readthedocs.io/en/latest/index.html#

这两个直接用 pip 安装即可。附上我的 .zshrc 配置内容

# pyenvexport PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"if command -v pyenv 1>/dev/null 2>&1; theneval "$(pyenv init -)"fi# virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport PROJECT_HOME=$HOME/py_venv_projectsexport VIRTUALENVWRAPPER_PYTHON=/Users/spring/.pyenv/shims/pythonsource /usr/local/bin/virtualenvwrapper.sh

*注意:

由于virtualenv,virtualenvwrapper依赖于python环境,所以确保通过pyenv管理的python版本里安装了这两个包。比如通过pyenv安装了一个新的python版本,切换到这个版本后要安装这两个包。

三:出发前准备

*)pyenv访问慢的问题

pyenv安装python版本默认是从python.org下载,访问特别慢,解决方法有两种如下:

1. alibaba弄了一个镜像库地址如下:https://npm.taobao.org/mirrors/python/

下载要安装的版本到本地 .pyenv/cache 目录

λ ~/.pyenv/cache/ pwd/Users/spring/.pyenv/cache   我电脑的目录λ ~/.pyenv/cache/ lltotal 53120-rw-r--r-- 1 spring staff 13M 6 7 17:18 Python-2.6.9.tar.gz-rwxrwxrwx@ 1 spring staff 13M 6 7 17:13 Python-2.6.9.tgz

完后执行  pyenv  install  2.6.9 即可安装成功。

2. 修改默认地址

修改pyenv安装路径下要安装python的版本,比如下面我要装2.6.9版本

vim /usr/local/Cellar/pyenv/1.2.18/plugins/python-build/share/python-build/2.6.9#require_gccinstall_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_opensslinstall_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline# 下面这行是原先的注释掉#install_package "Python-2.6.9" "https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" ldflags_dirs standard verify_py26 ensurepip# 下面这行是新增的,可以看到地址换成一个快一点的install_package "Python-2.6.9" "https://npm.taobao.org/mirrors/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" ldflags_dirs standard verify_py26 ensurepip

完后执行  pyenv  install  2.6.9 即可安装成功。

*) virtualenvwrapper不用最新本地python版本创建虚拟环境问题

virtualenvwrapper默认会 “ 记住 ” python的版本,当下一次切换了python的版本后创建出来的虚拟环境还是之前的版本,设置下面环境变量即可

export VIRTUALENVWRAPPER_PYTHON=/Users/spring/.pyenv/shims/python

四:小试牛刀

1)查看本地当前python版本

λ ~/ pyenv versions  查看所有已经安装的版本system* 2.7.16 (set by /Users/spring/.pyenv/version)3.7.23.8.2λ ~/ pyenv version   查看当前的版本2.7.16 (set by /Users/spring/.pyenv/version)λ ~/ pyenv global 3.8.2   全局切换一个版本λ ~/ pyenv version 查看发现已经切换过来了3.8.2 (set by /Users/spring/.pyenv/version)

2) virtualenvwrapper

λ ~/ virtualenvwrapper    列出可用命令

λ ~/ mktmpenv   创建一个零时的虚拟环境,退出后就会删除掉created virtual environment CPython3.8.2.final.0-64 in 285mscreator CPython3Posix(dest=/Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727, clear=False, global=False)seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/Users/spring/Library/Application Support/virtualenv/seed-app-data/v1.0.1)activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivatorvirtualenvwrapper.user_scripts creating /Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727/bin/predeactivatevirtualenvwrapper.user_scripts creating /Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727/bin/postdeactivatevirtualenvwrapper.user_scripts creating /Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727/bin/preactivatevirtualenvwrapper.user_scripts creating /Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727/bin/postactivatevirtualenvwrapper.user_scripts creating /Users/spring/.virtualenvs/tmp-44fd4f4fd9f4727/bin/get_env_detailsThis is a temporary environment. It will be deleted when you run 'deactivate'.λ ~/.virtualenvs/tmp-44fd4f4fd9f4727/ 这个地方标识已经在虚拟环境了 (env: tmp-44fd4f4fd9f4727)λ ~/.virtualenvs/tmp-44fd4f4fd9f4727/ python -V (env: tmp-44fd4f4fd9f4727)Python 3.8.2λ ~/.virtualenvs/tmp-44fd4f4fd9f4727/λ ~/.virtualenvs/tmp-44fd4f4fd9f4727/ deactivate   退出虚拟环境                                                                                                                                                             (env: tmp-44fd4f4fd9f4727)Removing temporary environment: tmp-44fd4f4fd9f4727Removing tmp-44fd4f4fd9f4727...λ ~/.virtualenvs/

我们经常会在项目里为项目创建一个单独的运行环境,如下:

mkvirtualenv -a ./ -r requirements.txt 虚拟环境名称

可以看到创建虚拟环境过程中通过 -r requirements.txt 安装项目依赖包,虚拟环境名称推荐使用和项目名称一样或者使用便于识别的名称。

*注意 :

可以通过 --python=python3.5 或者 -p 指定创建虚拟环境时候的python版本,常用于比如本地是2.7,但是要创建一个3.5的,但是又不想把本地的改了。通过该选项创建。

λ ~/Documents/secTooles/MyProject/ master* workon  查看当前在那个环境里,后面跟名称可以直接切换到指定环境                                                                                                                                                                     (env: OneForAll)MyProject

删除不用的环境

λ ~/Documents/secTooles/OneForAll/ master* rmvirtualenv MyProject

五:总结

virtualenvwrapper支持项目的概念,支持项目和虚拟环境绑定,支持各种hook方便开发者自定义虚拟环境等。更多方便好用的功能欢迎留言讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值