实验环境
实验名:01 CentOS7.6搭建Python开发环境
Linux版本: CentOS 7.6
Python版本: Python 3.6.8
实验步骤
第一步:关闭SELinux和防火墙
[root@localhost ~]# vim /etc/selinux/config
将SELINUX=enforcing
改成SELINUX=disabled
[root@localhost ~]# systemctl disable firewalld.service
执行结果如下:
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
第二步:安装Python3.6
[root@localhost ~]# yum -y install python3
执行结果如下:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package python3.x86_64 0:3.6.8-13.el7 will be installed
--> Processing Dependency: python3-libs(x86-64) = 3.6.8-13.el7 for package: python3-3.6.8-13.el7.x86_64
--> Processing Dependency: python3-setuptools for package: python3-3.6.8-13.el7.x86_64
--> Processing Dependency: python3-pip for package: python3-3.6.8-13.el7.x86_64
--> Processing Dependency: libpython3.6m.so.1.0()(64bit) for package: python3-3.6.8-13.el7.x86_64
--> Running transaction check
---> Package python3-libs.x86_64 0:3.6.8-13.el7 will be installed
---> Package python3-pip.noarch 0:9.0.3-7.el7_7 will be installed
---> Package python3-setuptools.noarch 0:39.2.0-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================================================
Installing:
python3 x86_64 3.6.8-13.el7 base 69 k
Installing for dependencies:
python3-libs x86_64 3.6.8-13.el7 base 7.0 M
python3-pip noarch 9.0.3-7.el7_7 updates 1.8 M
python3-setuptools noarch 39.2.0-10.el7 base 629 k
Transaction Summary
=======================================================================================================================================================================
Install 1 Package (+3 Dependent packages)
Total download size: 9.4 M
Installed size: 48 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/python3-3.6.8-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for python3-3.6.8-13.el7.x86_64.rpm is not installed
(1/4): python3-3.6.8-13.el7.x86_64.rpm | 69 kB 00:00:00
(2/4): python3-setuptools-39.2.0-10.el7.noarch.rpm | 629 kB 00:00:00
Public key for python3-pip-9.0.3-7.el7_7.noarch.rpm is not installed 41% [======================== ] 4.4 MB/s | 3.9 MB 00:00:01 ETA
(3/4): python3-pip-9.0.3-7.el7_7.noarch.rpm | 1.8 MB 00:00:00
(4/4): python3-libs-3.6.8-13.el7.x86_64.rpm | 7.0 MB 00:00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 7.7 MB/s | 9.4 MB 00:00:01
Retrieving key from http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
From : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python3-setuptools-39.2.0-10.el7.noarch 1/4
Installing : python3-libs-3.6.8-13.el7.x86_64 2/4
Installing : python3-3.6.8-13.el7.x86_64 3/4
Installing : python3-pip-9.0.3-7.el7_7.noarch 4/4
Verifying : python3-pip-9.0.3-7.el7_7.noarch 1/4
Verifying : python3-3.6.8-13.el7.x86_64 2/4
Verifying : python3-setuptools-39.2.0-10.el7.noarch 3/4
Verifying : python3-libs-3.6.8-13.el7.x86_64 4/4
Installed:
python3.x86_64 0:3.6.8-13.el7
Dependency Installed:
python3-libs.x86_64 0:3.6.8-13.el7 python3-pip.noarch 0:9.0.3-7.el7_7 python3-setuptools.noarch 0:39.2.0-10.el7
Complete!
第三步:配置pip国内源
先创建一个隐藏的pip文件夹,然后创建配置文件pip.conf
[root@localhost ~]# mkdir /root/.pip
[root@localhost ~]# vim /root/.pip/pip.conf
在pip.conf中添加如下内容(豆瓣的或阿里云的都可以二选一即可):
豆瓣的源
[global]
index-url=https://pypi.douban.com/simple/
[install]
trusted-host=pypi.douban.com
阿里云的源
[global]
index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/
[install]
trusted-host=mirrors.cloud.aliyuncs.com
第四步:安装虚拟环境
创建虚拟环境目录
[root@localhost ~]# mkdir /root/.virtualenvs
安装virtualenv和virtualenvwrapper,由于CentOS7.6自带Python2,直接使用pip可能指向的是python2,所以我们需要使用pip3进行安装
[root@localhost ~]# pip3 install virtualenv
结果如下:
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting virtualenv
Downloading https://pypi.doubanio.com/packages/f0/55/f0de23cb61f2e90db3f8362f0e685a0bc04d0c4cb159b7a96cb7c4817d63/virtualenv-20.0.23-py2.py3-none-any.whl (4.7MB)
100% |████████████████████████████████| 4.7MB 158kB/s
Collecting importlib-resources>=1.0; python_version < "3.7" (from virtualenv)
Downloading https://pypi.doubanio.com/packages/b6/03/1865fdd49ec9a938f9f84b255d3d37863df9fbd18b48c1c3f761040cbf13/importlib_resources-2.0.0-py2.py3-none-any.whl
Collecting distlib<1,>=0.3.0 (from virtualenv)
Downloading https://pypi.doubanio.com/packages/7d/29/694a3a4d7c0e1aef76092e9167fbe372e0f7da055f5dcf4e1313ec21d96a/distlib-0.3.0.zip (571kB)
100% |████████████████████████████████| 573kB 1.3MB/s
Collecting six<2,>=1.9.0 (from virtualenv)
Downloading https://pypi.doubanio.com/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting appdirs<2,>=1.4.3 (from virtualenv)
Downloading https://pypi.doubanio.com/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl
Collecting importlib-metadata<2,>=0.12; python_version < "3.8" (from virtualenv)
Downloading https://pypi.doubanio.com/packages/98/13/a1d703ec396ade42c1d33df0e1cb691a28b7c08b336a5683912c87e04cd7/importlib_metadata-1.6.1-py2.py3-none-any.whl
Collecting filelock<4,>=3.0.0 (from virtualenv)
Downloading https://pypi.doubanio.com/packages/93/83/71a2ee6158bb9f39a90c0dea1637f81d5eef866e188e1971a1b1ab01a35a/filelock-3.0.12-py3-none-any.whl
Collecting zipp>=0.4; python_version < "3.8" (from importlib-resources>=1.0; python_version < "3.7"->virtualenv)
Downloading https://pypi.doubanio.com/packages/b2/34/bfcb43cc0ba81f527bc4f40ef41ba2ff4080e047acb0586b56b3d017ace4/zipp-3.1.0-py3-none-any.whl
Installing collected packages: zipp, importlib-metadata, importlib-resources, distlib, six, appdirs, filelock, virtualenv
Running setup.py install for distlib ... done
Successfully installed appdirs-1.4.4 distlib-0.3.0 filelock-3.0.12 importlib-metadata-1.6.1 importlib-resources-2.0.0 six-1.15.0 virtualenv-20.0.23 zipp-3.1.0
[root@localhost ~]# pip3 install virtualenvwrapper
结果如下:
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting virtualenvwrapper
Downloading https://pypi.doubanio.com/packages/c1/6b/2f05d73b2d2f2410b48b90d3783a0034c26afa534a4a95ad5f1178d61191/virtualenvwrapper-4.8.4.tar.gz (334kB)
100% |████████████████████████████████| 337kB 1.9MB/s
Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages (from virtualenvwrapper)
Collecting virtualenv-clone (from virtualenvwrapper)
Downloading https://pypi.doubanio.com/packages/83/b8/cd931487d250565392c39409117436d910232c8a3ac09ea2fb62a6c47bff/virtualenv_clone-0.5.4-py2.py3-none-any.whl
Collecting stevedore (from virtualenvwrapper)
Downloading https://pypi.doubanio.com/packages/11/75/154f7b0bc00a580db2ccac141400dc601f7f2a1bf45bd56515edbda34850/stevedore-2.0.0-py3-none-any.whl (42kB)
100% |████████████████████████████████| 51kB 7.7MB/s
Requirement already satisfied: six<2,>=1.9.0 in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Requirement already satisfied: importlib-metadata<2,>=0.12; python_version < "3.8" in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Requirement already satisfied: distlib<1,>=0.3.0 in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Requirement already satisfied: appdirs<2,>=1.4.3 in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper)
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
Downloading https://pypi.doubanio.com/packages/96/ba/aa953a11ec014b23df057ecdbc922fdb40ca8463466b1193f3367d2711a6/pbr-5.4.5-py2.py3-none-any.whl (110kB)
100% |████████████████████████████████| 112kB 3.9MB/s
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/site-packages (from importlib-metadata<2,>=0.12; python_version < "3.8"->virtualenv->virtualenvwrapper)
Installing collected packages: virtualenv-clone, pbr, stevedore, virtualenvwrapper
Running setup.py install for virtualenvwrapper ... done
Successfully installed pbr-5.4.5 stevedore-2.0.0 virtualenv-clone-0.5.4 virtualenvwrapper-4.8.4
第五步:修改virtualenvwrapper.sh配置文件
virtualenvwrapper.sh配置文件的位置是/usr/local/bin/virtualenvwrapper.sh
修改的原因是默认是Python,而系统的Python指向的是python2,不是python3
将virtualenvwrapper.sh文件的第50行的python改为python3
如下所示:
[root@localhost ~]# vim /usr/local/bin/virtualenvwrapper.sh
将: VIRTUALENVWRAPPER_PYTHON="$(command which python)
改为: VIRTUALENVWRAPPER_PYTHON="$(command which python3)
将虚拟环境加入到环境变量中
[root@localhost ~]# vim /etc/bashrc +
添加代码如下:
export WORKON_HOME=$HOME/.virtualenvs
注意:修改完成后要刷新配置文件
[root@localhost ~]# source /etc/bashrc
[root@localhost ~]# source /usr/local/bin/virtualenvwrapper.sh
结果如下:
virtualenvwrapper.user_scripts creating /root/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /root/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /root/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /root/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /root/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /root/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /root/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /root/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/get_env_details
第六步:创建虚拟环境
[root@localhost ~]# mkvirtualenv study
结果如下:
created virtual environment CPython3.6.8.final.0-64 in 610ms
creator CPython3Posix(dest=/root/.virtualenvs/study, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /root/.virtualenvs/study/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/study/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/study/bin/preactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/study/bin/postactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/study/bin/get_env_details
第七步:进入虚拟环境
workon 可以列出全部的虚拟环境,如果要进入某个虚拟环境直接使用:workon + 虚拟环境名
[root@localhost ~]# workon study
结果如下:
(study) [root@localhost ~]#
在命令行前面多了一个study,说明我们在study这个虚拟环境中
第八步:退出虚拟环境
直接输入:deactivate就可以退出了
(study) [root@localhost ~]# deactivate
结果如下:
[root@localhost ~]#
删除虚拟环境
[root@localhost ~]# rmvirtualenv study
结果如下:
Removing study...
如果使用workon就不会有虚拟环境列出了