Centos7中安装Python虚拟环境

2018年08月27日 00:09:36 kaichenkai 阅读数:984

1.为什么要搭建虚拟环境?

  • 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
  • 解决方案 : 虚拟环境 
    作用 : 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.

在开发过程中, 便于控制python的web框架或工具包的版本,创建多个虚拟环境,就相当于我们在一台电脑上拥有了多个python解释器。

好了,接下来我们开始安装了~

2.搭建python虚拟环境

1.我们先创建一个隐藏目录 .virtualenvs,所有的虚拟环境都放在此目录下 

2.安装虚拟环境

pip3 install virtualenv
pip3 install virtualenvwrapper
  • 1
  • 2

3.配置环境变量,增加最后两行 
vim ~/.bashrc 
export WORKON_HOME=/root/.virtualenvs 
source /usr/local/python3.6.5/bin/virtualenvwrapper.sh 

运行测试:source ~/.bashrc 
发现报错了,是说 /usr/bin/python 没有 virtualenvwrapper 模块,我们把 /usr/bin/python 换成 python3

报错截图 

思路:/usr/bin/python → /usr/bin/python2 
操作:mv /usr/bin/python /usr/bin/python2

然后把 python3 执行文件通过软链接的方式放到 /usr/bin/python 
操作:ln -s /usr/local/python3.6.5/bin/python3 /usr/bin/python

再次执行source ~/.bashrc 
成功! 

4.创建虚拟环境

  • 在python3中,创建虚拟环境,需要联网!!!
mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 Django_virtualenv 出现这种错误,是因为 virtualenv 这个基础依赖包被安装在默认 Python 目录下,就需要做一个软连接 ln -s
首先还是用 find / -name "virtualenv" 去找到位置
然后做软连接ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
  • 创建成功 

    提示 :
    1.创建虚拟环境需要联网
    2.创建成功后, 会自动工作在这个虚拟环境上
    3.工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”
    • 1
    • 2
    • 3
    • 4

3.使用虚拟环境的命令

  • 选择虚拟环境: 
    workon 两次tab键 

  • 退出虚拟环境 
    deactivate

  • 删除虚拟环境 
    rmvirtualenv 虚拟环境名称 
    例 :删除虚拟环境py3_flask

    先退出:deactivate 
    再删除:rmvirtualenv py3_flask

4.在虚拟环境中安装工具包

  • 工具包安装的位置 : 
    ~/.virtualenvs/py3_flask/lib/python3.5/site-packages

  • 安装工具包,先使用 workon Django_virtualenv 进入到 虚拟环境 
    pip install 包名称

    例 : 安装 django==1.11.11 的包 
    pip install django==1.11.11

    查看虚拟环境中已经安装的包 
    pip list 

OK,到此虚拟环境安装完成,你也可以根据自己的需要创建多个虚拟环境

部署

nginx配置:

nginx配置文件内容

vim /etc/nginx/conf.d/students.conf (students.conf自定义起名字)
upstream students{
server unix:///root/django-demo/students.sock;
} server{
listen 80;#端口号
server_name 192.168.254.67;服务器ip
charset utf-8;设置中文 client_max_body_size 75M;文件传输最大75M
location /static{
alias /root/django-demo/static_dist;静态文件存放位置
} location /{
uwsgi_pass students;
include /etc/nginx/uwsgi_params;加载参数
}
}

students_uwsgi.ini文件内容

[uwsgi]
chdir = /root/django-demo #项目名字
module = students.wsgi #模块加载
home = /root/.virtualenvs/django-env-py3#虚拟环境
socket = /root/django-demo/students.sock
chmod-socket = 666 #设置权限

django2+python3+uwsgi+centos7部署网站的更多相关文章

  1. Django+uWSGI+Nginx 部署网站

    Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...

  2. 「Linux+Django」Django+CentOs7+uwsgi+nginx部署网站记录

    转自:http://www.usday.cn/blog/51 部署前的准备: 1. 在本地可以运行的django项目 2. 一台云服务器,这里选用Centos系统 开始部署: 首先在本地导出项目需要的 ...

  3. Python3 + django2.0 + apache2 + ubuntu14部署网站上线

    自己尝试在本地搭建了 Django 项目后,想部署到自己云服务器上,经常多次尝试和多次踩坑(捂脸),总结如下: 环境:ubuntu14, django2.0, apache2. 1.首先安装需要的库包 ...

  4. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

  5. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

  6. 使用uWSGI+nginx部署Django项目

    最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...

  7. Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用

    网上找了许多讲关于Flask应用部署的文章几乎都是一个helloworld的Demo,按照helloworld来部署都没问题,但实际项目部署时还是遇到了不少问题.在这里简单写下自己成功部署的过程,防止 ...

  8. virtualvenv+django+uWSGI+nginx 部署

    原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...

  9. centosflask+uWSGI+nginx部署

    centosflask+uWSGI+nginx部署 1.      概念 Flask自带webserver--Werkzeug,可以搭建服务,运行网站.但在开发时,一般会用专业的--uWSGI. 另外 ...

随机推荐

  1. MySqlBulkLoader设置Columns时要注意的地方

    在测试时发现有的表用MySqlBulkLoader一直加不上数据,经过检查,原来是因为表中的列名跟MYSQL的一个关键词对上了,所以在执行时把列名当做关键词进行处理了. LOAD DATA LOCAL ...

  2. Eclipse使用相关配置

    问题描述:The word is not correctly spelled问题分析:eclipse校验单词拼写造成,出现在配置文件中,会影响到程序的正常执行解决方案:在eclipse下的Window ...

  3. C#使用反射获取对象变化的情况

    记录日志时, 经常需要描述对象的状态发生了怎样的变化, 以前处理的非常简单粗暴: a. 重写class的ToString()方法, 将重要的属性都输出来 b. 记录日志时:  谁谁谁  由  变更前实 ...

  4. 关于接口测试工具postman与DHC介绍

    一.Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具.今天给大家介 ...

  5. Skipping acquire of configured file ···doesn't support architecture 'i386' acquire of configured file

    系统更新的时候报错: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://rep ...

  6. 树莓派3 开机自启动(SPI)

    转自:https://www.raspberrypi-spy.co.uk/2014/08/enabling-the-spi-interface-on-the-raspberry-pi/ 方案一:图形界 ...

  7. Numpy 创建数组

    ndarray 数组除了可以使用底层 ndarray 构造器来创建外, 也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape),数据类型 ...

  8. pip install rrdtool

    fatal error: rrd.h: No such file or directory apt-get install librrd-dev

  9. 分布式服务治理框架dubbo

    Dubbo最主要功能有两个 1 RPC调用 2 SOA服务治理方案 Dubbo的架构 Dubbo常见的注册中心有2中,zookeeper以及redis 这篇文章讲解的是采用的zookeeper,要求读 ...

  10. 如何高效的学习 TensorFlow 代码?

    https://www.zhihu.com/question/41667903 Linux[公共基础]:TensorFlow的主要运行平台之一就是Linux,但是正式版对Windows的支持日趋完善, ...