Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建
来源:互联网 发布:汉诺塔递归算法c实现 编辑:程序博客网 时间:2024/05/16 14:19
- Installation pyenv
- 方法1使用Mac OSX的Homebrew安装
- 方法2通过github工程安装
- Installation pyenv-virtualenv
- Using pyenv-virtualenv
- 特定python版本的某个环境下pip安装包
- Install issues
- ERROR pyenv install -v 351 failed to download Python-351targz
- pip install error
- References
- Installation pyenv
pyenv 是轻量的Python版本管理器,帮助你在一台机子上建立多个版本的python环境,并提供方便的切换方法。
pyenv-virtualenv 是 pyenv的扩展工具(类Unix系统上),可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。
更多pyenv和virtualenv的工作原理,请查看github工程说明。(引用1和2)
本文主要讲解Mac OSX上安装pyenv和virtualenv的过程,并记录安装中碰到的问题和相应的解决方法。
环境:OSX10.11 + shell: zsh + iTerm2
Installation pyenv
方法1:使用Mac OSX的Homebrew安装
$ brew update$ brew install pyenv
方法2:通过github工程安装
Check out pyenv where you want it installed. A good place to choose is $HOME/.pyenv (but you can install it somewhere else).
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Define environment variable PYENV_ROOT to point to the path where pyenv repo is cloned and add
$PYENV_ROOT/bin
to your$PATH
for access to the pyenv command-line utility.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Zsh note: Modify your ~/.zshrc file instead of ~/.bash_profile. Ubuntu note: Modify your ~/.bashrc file instead of ~/.bash_profile.
3. Add pyenv init to your shell to enable shims and autocompletion. Please make sure eval “$(pyenv init -)” is placed toward the end of the shell configuration file since it manipulates PATH during the initialization.
4. Restart your shell so the path changes take effect. You can now begin using pyenv. $ $SHELL -l
或 $ exec $SHELL
5. Install Python versions into $PYENV_ROOT/versions
. For example, to download and install Python 3.5.1, run:
查看有哪些版本可供安装:
$ pyenv install --list
Available versions:
2.6.9
2.7-dev
2.7
…….
3.5.0
3.5-dev
3.5.1
3.5.2
……安装
$ pyenv install 3.5.1
卸载
pyenv uninstall 3.5.1
查看所有版本( * 表示当前使用的版本)
☁ ~ pyenv versions system* 3.5.1 (set by /Users/jerry/.pyenv/version) 3.5.1/envs/my-virtualenv-3.5.1 my-virtualenv-3.5.1
- 切换python版本
pyenv global 3.5.1
或pyenv global system
每次安装完新版本python,或新的虚拟环境,或新的包,可能需要执行命令 pyenv rehash
才能生效
Installation pyenv-virtualenv
同安装pyenv- ,有两种方法安装virtualenv,这里只讲解github方法安装
Check out pyenv-virtualenv into plugin directory
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
(OPTIONAL) Add pyenv virtualenv-init to your shell to enable auto-activation of virtualenvs. This is entirely optional but pretty useful. See “Activate virtualenv” below.
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
Zsh note: Modify your ~/.zshenv file instead of ~/.bash_profile. Pyenv note: You may also need to add eval “$(pyenv init -)” to your profile if you haven’t done so already.
3. Restart your shell to enable pyenv-virtualenv $ $SHELL -l
或 $ exec $SHELL
Using pyenv-virtualenv
pyenv virtualenv my-virtualenv-3.5.1pyenv activate <name>pyenv deactivatepyenv uninstall my-virtual-env-3.5.1
特定python版本的某个环境下pip安装包
先切换到xx python版本的 xx virtualenv下
如:
☁ ~ pyenv global 3.5.1☁ ~ pyenv version3.5.1 (set by /Users/jerry/.pyenv/version)☁ ~ pyenv activate my-virtualenv-3.5.1pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.(my-virtualenv-3.5.1) ☁ ~ pip install numpy
新建文件hello.py
import sysimport numpyprint(sys.version)
执行如下命令:
(my-virtualenv-3.5.1) ☁ TestPy3 python hello.py 3.5.1 (default, Jul 5 2016, 01:08:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]
测试成功.
Install issues
ERROR: pyenv install -v 3.5.1
failed to download Python-3.5.1.tar.gz
Error:
Downloading Python-3.5.1.tgz...-> https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgzerror: failed to download Python-3.5.1.tar.gzBUILD FAILED (OS X 10.11 using python-build 20160509)
Resolve:
https://github.com/yyuu/pyenv/issues/303
http://stackoverflow.com/questions/37227854/pyenv-build-failed-ubuntu-15-04-using-python-build-20160509
In the centos 5.10,we should set the Setting http://yyuu.github.io/pythons as PYTHON_BUILD_MIRROR_URL in the .bashrc. then it runs ok. thank you very much
~/.zshrc
export PYTHON_BUILD_MIRROR_URL=”http://yyuu.github.io/pythons”#jerry start pyenv export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"export PYTHON_BUILD_MIRROR_URL="http://yyuu.github.io/pythons"eval "$(pyenv init -)"#pyenv end
- 手动下载Python-3.5.1.tar.gz复制到~/.pyenv/versions下
- 最后执行命令:
pyenv install -v 3.5.1
pip install error
```pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.You are using pip version 7.1.2, however version 8.1.2 is available.You should consider upgrading via the 'pip install --upgrade pip' command.```
Resolve:
http://blog.csdn.net/lijiang1991/article/details/51775896
References
- https://github.com/yyuu/pyenv
- https://github.com/yyuu/pyenv-virtualenv
- http://my.oschina.net/davehe/blog/625896
- pip install Error: http://blog.csdn.net/lijiang1991/article/details/51775896
- Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建
- Python版本管理:pyenv和pyenv-virtualenv(MAC、Linux)、virtualenv和virtualenvwrapper(windows)
- Mac OS 上用pyenv和pyenv-virtualenv管理多个Python多版本及虚拟环境
- 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- [转]用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- 用pyenv和virtualenv搭建单机多版本python虚拟开发环境
- 用pyenv和virtualenv搭建单机多版本python虚拟开发环境-命令
- 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- 【转载】CentOS下用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- mac下使用pyenv,pyenv-virtualenv管理python的多个版本
- Mac端pycharm平台下pyenv和pyenv-virtualenv管理python版本的安装和简单实用
- Python多版本共存管理工具之pyenv
- 使用pyenv和virtualenv搭建python虚拟环境
- pyenv和virtualenv在Linux下搭建python虚拟环境
- 使用pyenv和virtualenv搭建python虚拟环境实践总结
- 使用pyenv和virtualenv搭建python虚拟环境
- Mac OSX 下PyCharm 工程中 pyenv 和 virtualenv的使用
- 0138 redis脚本实现分布式锁
- 电子烟使用评测
- codevs_4927 线段树练习5
- 使用ShadowCopy+QuarksPwDump0.3a导出当前域内所有用户的hash
- iptables
- Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建
- unity htcvive sdk 按键
- AngularJs的自定义的正则校验指令--代码共享
- 四个下拉框联动 省市区法院选择 js + ajax
- 如何给变量取个简短且无歧义的名字
- android 基础知识回顾--- “沙箱”机制sharedUserId跟签名
- iOS开发多线程篇—线程间的通信
- 每日一笑(2)
- LeetCode 第 292 题 (Nim Game)