[关闭]
@hitchhacker 2018-07-22T12:13:09.000000Z 字数 5231 阅读 1811

Python 环境搭建以及神器推荐

今天给大家讲一下如何搭建一个舒适的 Python 环境,包括本地环境和远程调试环境,然后再附送给大家两套好用的 Python Web 框架。在这个过程中,还穿插着介绍一些适合于初学者的神器,希望大家中意~

1 安装 Python

第一步,当然是安装 Python 啦。

1.1 Mac 系统

Mac 系统默认是安装了 Python2.7 的。我们如何另外安装一个 Python3 呢?
首先,推荐你安装神器 HomeBrew 作为命令行下的管理软件。

HomeBrew 的安装方法:

  1. ruby -e "$(wget -O- https://raw.github.com/Homebrew/linuxbrew/go/install)"

安装完毕后使用brew help命令即可查看brew的各种用法啦。

现在我们只要使用这条命令:brew install python3,即能轻松安装上 python3 了。

然后我们使用brew info python2或者brew info python3就能查看 Python 2/3 的具体信息,妈妈再也不用担心我找不到 Python 的位置了!

最后,使用brew list可以查看目前所有通过 brew 安装的命令行工具,其它的用法就通过brew help自行查阅吧。

1.2 Ubuntu 系统

Ubuntu 系统使用的是则默认的包管理工具 apt 。使用如下命令即可安装 python :

  1. apt install python2 #安装python2
  2. apt install python3 #安装python3

然后,在 Ubuntu 下有两点是需要注意的。
一个是 Python 的定位,我们用 whereis 命令来查看其所在的文件夹:

  1. whereis python

另一个是 Pip 的安装。Pip 是 Python 的包管理插件。

首先安装 setuptools :

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install

然后给 Python3 安装 pip:

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3 setup.py build
python3 setup.py install

然后输入 pip3,如果有正常返回,那么大功告成!

1.3 Python2/3 轻松分离

有时候我们只想使用 Python3,但是 Python2 会干扰到,那么怎么解决呢?
很简单,在要用 Python3 的时候不是输入 Python 而是输入 Python3,在使用 Python3 的 pip 的时候不是输入 pip 而是输入 pip3。
例如,给 Python3 安装 Flask :

  1. pip3 install Flask

2 Pycharm 神器管理本地环境

然后,当当,就是我们第二个神器登场啦,就是大名鼎鼎的 Pycharm 代码编辑器。

https://www.jetbrains.com/pycharm/

Pycharm 分为社区版(免费)和专业版(付费),二者最大的区别就是付费版本的 Pycharm 支持远程调试。

2.1 创建新项目

我们来创建一个新项目。
image.png-196.2kB
主要的参数有两个,一个是 Location ,项目的地址。
第二个是 Project Interpreter 项目解释器,也就是你要使用哪个 Python 。如果选择 New environment using 呢,就是新建一个虚拟环境,和本机安装的 Python 互不干扰。如果选择 Existing Interpreter,则是使用本机的现有环境。

如果本机安装的 Python 没显示怎么办?那么点击最后边的省略号,选择 System Interpreter,再点击一次省略号,就能添加了。

image.png-197.9kB

然后我们找到 Python 的所在位置,添加即可。如何找到 Python 位置?请见第一部分。

2.2 改变已有项目的环境

如果一开始配置错了,那么该怎么办呢?
点击 Pycharm > Preference > Project > Project Interpreter设置即可。
image.png-36.4kB
image.png-275.4kB

2.3 Pycharm 中包的安装

在 Pycharm 中,安装 Python 的包有两种方法,一种方法是在刚才的 Project Interpreter 界面里,使用加减号进行包的安装与卸载。

image.png-154kB

在安装一两个包的情况下,这种方法是一种简便的方法。那么如果是很多的包呢?这种时候我们就要用到 pip 了。

一般而言,github 中规范的 python 源码会提供一个叫 requirements.txt 的文档,文档里记录的是要安装的包的名称以及版本。

image.png-91.4kB

然后我们打开 Pycharm 里的终端窗口:

image.png-177.5kB

只要到 requirements.txt 所在的目录下,使用pip3 install -r requirements.txt命令,就能在当前的 python 环境中导入所有需要的包啦,很方便。

那么,我们在做项目的时候,如何生成 requirements.txt 以供自己和他人使用呢?同样是一行命令就能搞定的事:pip freeze > requirements.txt

怎么样,你 get 了吗?

3 Pycharm 轻松实现远程调试

某些时候,我们会涉及到在服务器上运行 Python 程序,那么我们就需要对 Pycharm 做一些配置。

注意,只有 Pycharm Pro 支持远程调试。

3.1 配置远程连接

首先,假定我们手头有一台服务器,并有服务器的账号和密码。

然后打开Tools > Deployment > Configuration > new

image.png-176.5kB
如下内容是要我们填写的:

再点击Mapping:
image.png-63kB

image.png-403kB

配置完成后,点击Tools > Browse Remote Host,右侧出现我们服务器上的文件,就说明远程连接成功了!

image.png-135.2kB

添加远程 Python 解释器

接下来我们添加远程 Python 解释器,就能在本地「遥控」远程的服务器执行我们的 Python 程序了。
点击 Pycharm > Preference > Project > Project Interpreter > SSH Interpreter
输入 地址、用户名、密码三件套。
image.png-361.4kB

Alright,试着在服务器上运行 Hello World 吧!

4 Python Web 环境搭建

这里是本文的重头戏了——如何用 Python 在服务器上搭建一个网站。
这里推荐 Python-Flask + Nginx + Gunicorn +Supervisor + Sqlite 的方案,因为这几个软件都对新手非常友好。其中 Python-Flask 是后端核心,Nginx 是前端服务器,Gunicorn 是后端服务器,Supervisor 是进程监控软件,Sqlite 是轻型数据库。

4.1 配置 Python-Flask 框架

首先,我们git clone一个Python框架。

无数据库的 Flask 框架:

https://github.com/albertschr/Mixin_EOS_Player/tree/master/Python/Flask_Sketch_Nosql

有数据库的 Flask 框架:

https://github.com/albertschr/Mixin_EOS_Player/tree/master/Python/Flask_Sketch

然后先在服务器上安装必要的 Python 包:

  1. pip install -r requirements.txt

接着测试一下框架是否能正常运行:

  1. python3 run.py

image.png-108.1kB
如果显示`Running on http://127.0.0.1:5000 表示框架运行正常。

4.2 安装 Nginx、Gunicorn 与 Supervisor

在服务器上运行:

  1. apt install nginx
  2. pip3 install gunicorn
  3. pip3 install supervisor

4.3 修改 nginx 的配置文件

nginx 的配置文件在 /etc/nginx/sites-available 目录下,default 文件。

  1. server {
  2. listen 80;
  3. listen [::]:80;
  4. server_name example.com;
  5. root /home/git;
  6. index index.html;
  7. location / {
  8. try_files $uri $uri/ =404;
  9. }
  10. }

我们要做以下两件事:

4.4 配置 supervisor

在你喜欢的目录下生成 supervisor.conf 文件:

  1. echo_supervisord_conf > supervisor.conf # 生成 supervisor 默认配置文件

打开配置文件:

  1. nano supervisor.conf

在底部添加:

  1. [program: [项目名称] ]
  2. command=gunicorn -w4 -b0.0.0.0:1234 run:app ; supervisor启动命令,文件叫run.pyrun.py里面执行的类叫app
  3. directory=[项目目录] ; 项目的文件夹路径
  4. startsecs=0 ; 启动时间
  5. stopwaitsecs=0 ; 终止等待时间
  6. autostart=false ; 是否自动启动
  7. autorestart = true ; 程序异常退出后自动重启
  8. startretries = 3 ; 启动失败自动重试次数,默认是 3
  9. stdout_logfile=[日志目录]/gunicorn.log
  10. stderr_logfile=[日志目录]/gunicorn.err

把上面的项目名称、项目目录、日志目录改成自己的即可。

4.5 修改run.py

把 run.py 从本地运行改为服务器上运行。
app.run那行注释掉,添加以下代码:

  1. if __name__ == '_main_':
  2. app.run(host="0.0.0.0",debug=True)
  3. #无需填写端口,因为gunicorn中已经填了

万事Okay。执行下面命令,你的后端服务器就运行起来啦!

  1. supervisorctl -c supervisor.conf reload
  2. supervisorctl -c supervisor.conf start all

4.6 supervisor的用法

  1. supervisord -c supervisor.conf 通过配置文件启动supervisor
  2. supervisorctl -c supervisor.conf status 察看supervisor的状态
  3. supervisorctl -c supervisor.conf reload 重新载入 配置文件
  4. supervisorctl -c supervisor.conf start [all]|[appname] 启动指定/所有 supervisor管理的程序进程
  5. supervisorctl -c supervisor.conf stop [all]|[appname] 关闭指定/所有 supervisor管理的程序进程

4.7 supervisor 的小 bug

有时候,因为服务器重启等原因 supervisor会出现一个 error :

  1. error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 228

这时候,运行以下两个命令:

  1. sudo supervisord -c /etc/supervisor/supervisord.conf
  2. sudo supervisorctl -c /etc/supervisor/supervisord.conf

再执行:

  1. supervisorctl -c supervisor.conf reload

就能解决。

6 总结

搭建 Python 环境对于初学者来说,有时候还挺费劲。因此,我把 Python 环境搭建中的五项基础技能集成在这一篇文章里:

希望能对大家有所帮助!ღ( ´・ᴗ・` )

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注