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. 编写函数,接受一个string,返回一个bool值,指出string是否有5个或者更多字符,使用此函数打印出长度大于等于5的元素

    #include <algorithm> using namespace std; bool isFive(const string& s1) { return s1.size() ...

  2. Appium+python自动化获取toast消息的方法

    转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=http ...

  3. 19-03【golang】strings包

    golang的strings包提供了字符串操作的一系列函数.下面做个简单介绍 函数 用法 备注 Compare(a,b sring) 比较两个字符串   Contains(s, substr stri ...

  4. 记录一次程序输出和DB查询不匹配的问题

    今天发生一件很神奇的事情,我用TP读取DB数据,然后打印出来的数据,和直接通过sequal pro查询出来的数据(某一列),怎么对都对不起来,我尝试 清空TP缓存 MYSQL服务重启 mac重启 都无 ...

  5. 双硬盘,win10安装到固态盘

    1.PE下格式化固态盘的系统盘 2.打开DG分区工具,查看固态盘的系统盘是否为激活状态,红色为激活,如果不是,激活一下 3.用windows安装器,或者hdd安装win10到固态盘 4.bios中启动 ...

  6. python的单元测试unittest模块

    首先需要导入unittest模块 import unittest import  HTMLTestRunner # TestCase 也就是测试用例## TestSuite 多个测试用例集合在一起,就 ...

  7. lambda练习题

    3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao','nezha'] # def func(item): # ...

  8. rabbitmq 启动报错 Failed to get nic info

    这个报错 基本搜索不到什么有效信息 解决办法: hostnamectl set-hostname xxx.local # 先把rabbitmq进程杀掉$ ps -ef | grep rabbitmq ...

  9. IIS发布MVC ASP.NET网站

    发布网站后,发现无法访问,最后在配置文件上添加一段: <system.codedom> <compilers> <compiler language="c#;c ...

  10. selenium启动谷歌浏览器

    谷歌浏览器可以是任意版本. 根据谷歌浏览器的版本,下载响应的浏览器驱动(百度:谷歌驱动与谷歌浏览器版本映射表). 我用的是win7 ,下载win32就行了.下载解压之后可以放在python的安装目录下 ...