Ubuntu下使用 pyenv和virtualenv管理多版本python及版本项目

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 01:42   11   0

今天遇到了这么一个问题,在一台服务器上,已经安装了python2.7 和 python3.5 。且服务器中已经运行着两个相关Python版本的程序。今天,我想把一个新的项目放到此服务器上,但这个项目要求的python最低版本是3.6。

为了不影响其他已经在运行的项目,我尝试了使用virtualenv去做隔离,但后来了解到,virtualenv只是在管理已有的python及python项目,无法去创建一个新的python版本的环境。难道说,还需要我在保留python3.5 的情况下,再去安装一个python3.6吗?事实上,我并不清楚python3.5和python3.6能否共存,但我又不敢轻易去尝试安装,因为我怕影响到已经运行的程序。

再后来,我了解到pyenv+virtualenv可以帮我解决上面的问题,而且这么做,可以将以后的每个项目的环境独立出来。下面记录使用过程:


1 使用命令行进行自动安装

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

安装后,会在终端窗口中显示以下三行:

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

2 设置环境变量

将上面的三行,复制下来,找到你的.bashrc 文件,粘贴到末尾。或者使用命令,将以上三条添加到环境变量中:

echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

3 更新环境变量

执行以下命令

source ~/.bashrc

4 检查是否安装成功

 pyenv -v

如果出现版本号,代表安装成功。


下面是怎么用pyenv和virtualenv 去安装新的python版本及创建新的项目,我这里使用 python3.7.5 做为例子

1 查看现在已有的python版本

pyenv versions

这条命令会列出使用pyenv安装的所有的python版本,但第一次的时候,这里是没有版本信息的,就像下面这样:

root@xxxxx:~# pyenv versions
* system (set by /root/.pyenv/version)

2 查看可安装的python版本列表

pyenv install --list

这条命令会列出很多pyhon版本,看一下你想安装的版本在不在里面,如过在,继续往下执行

3 安装python3.7.5

安装 3.7.5 版本

pyenv install 3.7.5

可能需要等待一会,我安装的时候,等了挺久的。可能还有下载不下来的情况。你还可以去官网下将Python-3.7.5.tar.xz文件下载下来,放到~/.pyenv/cache 目录中,然后再执行上面的语句安装,稍等会就可以了。

4 检查是否安装成功

执行 1 中的指令,看是否列出了 3.7.5 ,如果有就可以了。

root@iZ2zegzvor1tqtclfu59opZ:~# pyenv versions
* system (set by /root/.pyenv/version)
  3.7.5

5 创建新的项目

进入项目目录创建项目文件夹,我下面举个例子

cd /home/
mkdir pyenv_demo
cd pyenv_demo

为这个项目设置python版本

pyenv local 3.7.5

检查当前项目python版本,还是在 pyenv_demo 这个路径上执行

python

可以看到,当前项目python已经是 3.7.5 了。

在切到其他路径执行命令,会看到结果是3.5 或2.7


2020-05-19 更新:

1 使用CURL命令行进行自动安装,连接不上,无法下载安装。我从网上收集了其他安装方法,并进行了验证:

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

2 在使用pyenv安装指定版本的python时,报错疑似缺少库

Installing Python-3.5.0...
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems

跳转到 https://github.com/pyenv/pyenv/wiki/Common-build-problems 查看原因,按照文档说明的进行安装。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP