原来的python3解释器, 以它为本体, 创建多个分身
使用virtualenv命令创建虚拟环境时,则会在当前目录下创建,使用virtualenvwrapper才可以统一创建目录。
步骤:
pip3 install virtualenv -i https://pypi.douban.com/simple
在/opt/virtual_env目录下新建两个虚拟环境
virtualenv --no-site-packages --python=python3 django_1
virtualenv --no-site-packages --python=python3 django_2
相对路径:
cd /opt/virtual_env/django_1/bin
source activate
绝对路径:
source /opt/virtual_env/django_1/bin/activate
(等效于virtualenvwrapper中的workon)
同理,另起一个终端,令其工作在django_2的虚拟环境下
pip install django==1.8 -i https://pypi.douban.com/simple
pip install django -i https://pypi.douban.com/simple
echo $PATH
/opt/virtual_env/django_1/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
现在的环境变量第一位是虚拟环境下面的python3解释器,跟python本体的解释器不一样
which python3
/opt/virtual_env/django_1/bin/python3
? 在1.8这个版本的django下,用9000端口来跑
? 在2.2.5这个版本的django下,用8000端口来跑
? (1) 分别进入两个虚拟环境,分别创建django项目,但是都在/home/project_dir/django_pro目录下
进入django_1虚拟环境下:
source /opt/virtual_env/django_1/bin/activate
cd /home/project_dir/django_pro
django-admin startproject test_pro1
再进入django_2虚拟环境下:
source /opt/virtual_env/django_2/bin/activate
cd /home/project_dir/django_pro
django-admin startproject test_pro2
并在settings.py文件中,将ALLOWED_HOSTS = ["*"]
然后分别启动两个项目:
python3 manage.py runserver 0.0.0.0:8000
python3 manage.py runserver 0.0.0.0:9000
(因为django1.8版本需要指定访问url,并且返回的页面,所以没有得到小火箭的页面)
virtualenv这个工具太麻烦了
1 命令太长, 不容易记住
2 管理虚拟环境特别麻烦, 容易弄错目录,容易找不到虚拟环境,最终导致得重装系统或者重装虚拟环境
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包 以及各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在虚拟环境中导入项目所需的模块依赖
pip3 install -r requirements.txt
一定要安装在python解释器本体下!!!
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
vim ~/.bashrc
export WORKON_HOME=$HOME/Envs # 设置virtualenv的统一管理目录, 以后自动下载的虚拟环境,全部都放在这
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 # 指定python解释器的本体(注意此路径随不同的linux环境改变而改变)
source /opt/python36/bin/virtualenvwrapper.sh # 执行virtualenvwrapper安装脚本
注意: 后面的注释你得知道,但是不能放到配置文件里面去,不然会报错!!!
真实实验环境配置文件如下:
export WORKON_HOME=$HOME/Envs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
source /opt/python36/bin/virtualenvwrapper.sh
source ~/.bashrc
# 退出远程ssh连接
logout
mkvirtualenv TS
mkvirtualenv ts
# 当系统下存在多个版本的python解释器时,例如python2.7与python3.6版本,则在创建虚拟环境的时候命令如下:
mkvirtualenv TS -p python3 # 根据python3创建虚拟环境
mkvirtualenv ts -p python # 根据python2创建虚拟环境
workon TS
workon ts
rmvirtualenv TS
rmvirtualenv ts
原文:https://www.cnblogs.com/Ethan-TS/p/12078474.html