文章内容

2019/12/4 19:34:46,作 者: 黄兵

Ubuntu 18.04 安装Python虚拟环境

如何在Ubuntu 18.04安装虚拟环境呢?具体操作步骤如下:

1、首先更新系统:

sudo apt-get update

安装系统更新:

sudo apt-get -y upgrade

其中-y表示同意安装所有更新。

关于这两个命令的具体区别可以看看这篇文章:Ubuntu点滴--apt-get update和upgrade的作用

2、查看系统中的Python版本:

python3 --version

3、安装Python软件包管理pip,具体命令:

sudo apt-get install -y python3-pip

4、安装一些更多的软件包:

sudo apt-get -y install build-essential libssl-dev libffi-dev python-dev

5、设置虚拟环境:

sudo apt-get -y install python-virtualenv

6、同步github项目数据,之后切换目录:

git clone https://github.com/sycct/xxx.git

移动到/var/目录下面:

sudo mv /home/ubuntu/xxx /var/

切换到项目目录:

cd /var/xxx

7、创建目录内的虚拟环境:

virtualenv venv -p /usr/bin/python3

激活虚拟环境:

. venv/bin/activate

如果是要关闭虚拟环境,使用下面命令:

deactivate

8、由于程序使用了MySQL,需要安装MySQL客户端:

sudo apt-get install libmysqlclient-dev

之后安装相关依赖(MySQL在python环境下面的一些包):

pip install mysqlclient

9、安装相关库文件,如果使用的是requirements.txt文件安装,输入如下命令:

pip install -r requirements.txt

10、在虚拟环境下面安装Gunicorn:

pip install gunicorn

11、测试是否缺少相关库文件,具体命令如下:

gunicorn -b 0.0.0.0:5000 manage:app --reload

如果有问题,可以看看具体错误内容,如果是缺少包,直接使用:

pip install xxx

安装依赖包就可以了,其他问题参考这篇文章:Flask Gunicorn 安装时遇到的问题总结Flask+Gunicorn+Nginx安装

12、安装nginx:

sudo apt-get -y install nginx

配置/etc/nginx/sites-available/default文件,具体命令如下:

sudo vi /etc/nginx/sites-available/default

配置/etc/nginx/sites-available/default文件示例:

server {

  listen 80;
  listen [::]:80 ssl;
  listen 443 ssl http2;
  listen [::]:443 ssl;
  server_name www.materialtools.com;

  ssl_certificate /etc/ssl/private/www.materialtools.com/1_www.materialtools.com_bundle.crt;
  ssl_certificate_key /etc/ssl/private/www.materialtools.com/2_www.materialtools.com.key;


  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
  keepalive_timeout 70;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  
  add_header Strict-Transport-Security max-age=63072000;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;

  location / {
      	try_files $uri @gunicorn_proxy;
  }

  location @gunicorn_proxy {
      	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
      	proxy_redirect off;
      	proxy_pass http://0.0.0.0:5002;
	# proxy_pass http://app;
      	proxy_connect_timeout 500s;
      	proxy_read_timeout 500s;
      	uwsgi_buffers 16 16k;
      	uwsgi_buffer_size 32k;
      	proxy_send_timeout 500s;
  }
}

上传域名的密钥文件,之后移动到相应目录:

# 新建目录 
sudo mkdir /etc/ssl/private/www.materialtools.com/
# 将文件移动到相应目录 
sudo mv /home/ubuntu/sms.materialtools.com/Nginx/1_sms.materialtools.com_bundle.crt /etc/ssl/private/sms.materialtools.com/1_sms.materialtools.com_bundle.crt
sudo mv /home/ubuntu/sms.materialtools.com/Nginx/2_sms.materialtools.com.key /etc/ssl/private/sms.materialtools.com/2_sms.materialtools.com.key
sudo mv /home/ubuntu/dhparam.pem /etc/ssl/certs/dhparam.pem

未完待续。


分享到:

发表评论

评论列表