python虚拟环境部署及homeassistant安装

2019-08-02 0 条评论 677 次阅读 0 人点赞

在centos系统的官方yum源中,python的版本一般都比较低,当需要使用到3.6或者3.7版本的时候,卸载或者升级系统自带的python版本不见得是一个明智之举,可能会影响到现有系统软件对低版本python的依赖。

python的不同版本可以共同存在一个系统环境中,我们可以使用类似python36、python37这样的名称来将不同版本的python安装到系统中,并用相同的名称作为命令来调用不同版本的python。注意:官方yum源中只有2.X版本的,高版本的添加epel源。

[root@localhost ~]# yum install -y python36
.........
[root@localhost ~]# python -V
Python 2.7.5
[root@localhost ~]# python36 -V
Python 3.6.8

然而pip以及其安装的不同软件所依赖的不同版本的库则又成为一个问题,那怎么解决这个的问题呢?答案是部署python虚拟环境。将此版本python以及其依赖的所有文件都拷贝到一个文件夹中,然后把将这个文件夹虚拟成一个python的世界,我们进入这个世界后,所有涉及python的操作及文件都圈限在这个世界里,躲进小楼成一统,管他冬夏与春秋。

[root@localhost ~]# mkdir HA0.96.5
[root@localhost ~]# python36 -m venv HA0.96.5/      #创建虚拟环境
[root@localhost ~]# cd HA0.96.5/
[root@localhost HA0.96.5]# ls
bin  include  lib  lib64  pyvenv.cfg        #这里是python及其依赖的系统文件
[root@localhost HA0.96.5]# source bin/activate      #激活虚拟环境
(HA0.96.5) [root@localhost HA0.96.5]#       #行首的“(HA0.96.5)”是虚拟环境标识

在3.6版本python的pip版本太低,不满足我们的使用该怎么办呢?在虚拟环境里放心升级就是了

(HA0.96.5) [root@localhost HA0.96.5]# pip -V
pip 18.1 from /root/HA0.96.5/lib64/python3.6/site-packages/pip (python 3.6)
(HA0.96.5) [root@localhost HA0.96.5]# pip3 install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/62/ca/94d32a6516ed197a491d17d46595ce58a83cbb2fca280414e57cd86b84dc/pip-19.2.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.2.1
(HA0.96.5) [root@localhost HA0.96.5]# 
(HA0.96.5) [root@localhost HA0.96.5]# pip -V
pip 19.2.1 from /root/HA0.96.5/lib64/python3.6/site-packages/pip (python 3.6)
(HA0.96.5) [root@localhost HA0.96.5]# pip3 -V
pip 19.2.1 from /root/HA0.96.5/lib64/python3.6/site-packages/pip (python 3.6)
(HA0.96.5) [root@localhost HA0.96.5]# 

接下来让我们安装个homeassistant

(HA0.96.5) [root@localhost HA0.96.5]# pip3 install homeassistant==0.96.5
Collecting homeassistant==0.96.5
  Using cached https://files.pythonhosted.org/packages/14/56/92852a71e4422e0e1784460e5b3e396488266604299052861d1ae08c9ae1/homeassistant-0.96.5-py3-none-any.whl
Collecting PyJWT==1.7.1 (from homeassistant==0.96.5)
  Using cached 
.......
  Running setup.py install for idna-ssl ... done
  Running setup.py install for pycparser ... done
Successfully installed MarkupSafe-1.1.1 PyJWT-1.7.1 aiohttp-3.5.4 asn1crypto-0.24.0 astral-1.10.1 async-timeout-3.0.1 attrs-19.1.0 bcrypt-3.1.7 certifi-2019.6.16 cffi-1.12.3 chardet-3.0.4 cryptography-2.7 homeassistant-0.96.5 idna-2.8 idna-ssl-1.1.0 importlib-metadata-0.18 jinja2-2.10.1 multidict-4.5.2 pycparser-2.19 python-slugify-3.0.2 pytz-2019.2 pyyaml-5.1.1 requests-2.22.0 ruamel.yaml-0.15.97 six-1.12.0 text-unidecode-1.2 typing-extensions-3.7.4 urllib3-1.25.3 voluptuous-0.11.5 voluptuous-serialize-2.1.0 yarl-1.3.0 zipp-0.5.2
(HA0.96.5) [root@localhost HA0.96.5]# 
(HA0.96.5) [root@localhost HA0.96.5]# hass --version
0.96.5

如果想要离开这个虚拟环境该怎么办呢?

(HA0.96.5) [root@localhost HA0.96.5]# deactivate
[root@localhost HA0.96.5]# pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
[root@localhost HA0.96.5]# pip3 -V
bash: pip3: command not found...
Similar command is: 'pip'
[root@localhost HA0.96.5]# ll /usr/bin/pip*
-rwxr-xr-x. 1 root root 282 Mar  8 02:54 /usr/bin/pip
-rwxr-xr-x. 1 root root 284 Mar  8 02:54 /usr/bin/pip2
-rwxr-xr-x. 1 root root 288 Mar  8 02:54 /usr/bin/pip2.7


退出虚拟环境后看我们发现什么,原来在真实环境中pip3不存在,目标完成

once

这个人太懒什么东西都没留下

文章评论(0)