一、准備CentOS7系統
參照:https://www.cnblogs.com/leokale-zz/p/11643822.html
安裝Anaconda到/usr/local/anaconda3目錄下。
為python3創建軟連接:
ln -s /usr/local/anaconda3/bin/python /usr/bin/python3 ln -s /usr/local/anaconda3/bin/pip /usr/bin/pip3
查看版本:
[root@centos-base ~]# python3 -V Python 3.7.0
[root@centos-base ~]# pip3 -V pip 10.0.1 from /usr/local/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
二、安裝虛擬環境
安裝virtualenv和virtualenvwrapper:
pip3 install virtualenv pip3 install virtualenvwrapper
添加環境變量:
# ~/.bashrc export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/local/anaconda3/bin/python source /usr/local/anaconda3/bin/virtualenvwrapper.sh
source ~/.bashrc
三、創建虛擬環境
使用命令創建虛擬環境:
mkvirtualenv venv_1 # 創建一個名為venv_1的虛擬環境
[root@centos-base .virtualenvs]# mkvirtualenv venv_1 Using base prefix '/usr/local/anaconda3' New python executable in /root/.virtualenvs/venv_1/bin/python Installing setuptools, pip, wheel... done. virtualenvwrapper.user_scripts creating /root/.virtualenvs/venv_1/bin/predeactivate virtualenvwrapper.user_scripts creating /root/.virtualenvs/venv_1/bin/postdeactivate virtualenvwrapper.user_scripts creating /root/.virtualenvs/venv_1/bin/preactivate virtualenvwrapper.user_scripts creating /root/.virtualenvs/venv_1/bin/postactivate virtualenvwrapper.user_scripts creating /root/.virtualenvs/venv_1/bin/get_env_details (venv_1) [root@centos-base .virtualenvs]#
可以看到,創建好虛擬環境后,命令提示符前面多了一個(venv_1),表示我們正處於虛擬環境中。
四、操作虛擬環境
1.退出虛擬環境
(venv_1) [root@centos-base bin]# deactivate
[root@centos-base bin]#
2.進入虛擬環境
[root@centos-base bin]# workon venv_1 (venv_1) [root@centos-base bin]# 或者: [root@centos-base ~]# cd ~/.virtualenvs/venv_1/bin [root@centos-base bin]# source activate
3.查看虛擬環境
[root@centos-base bin]# lsvirtualenv
venv_1
======
4.刪除虛擬環境
[root@centos-base bin]# rmvirtualenv venv_1
Removing venv_1...
5.避免PIP誤裝
當我們未處於虛擬環境的時候,使用PIP安裝的包會被安裝在系統python中。為了避免這種情況的發生,可以進行以下配置:
在~/.bashrc中添加:
export PIP_REQUIRE_VIRTUALENV=true
source ~/.bashrc
然后,再在系統環境執行pip的時候:
[root@centos-base bin]# pip3 install redis Could not find an activated virtualenv (required).
*(^_ ^)**!