您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

发表于:2018-08-28 作者:佚名 来源:今日头条

今天给大家讲一下如何搭建一个舒适的 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 : 


  1. wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26  
  2. tar -zxvf setuptools-19.6.tar.gz  
  3. cd setuptools-19.6  
  4. python3 setup.py build  
  5. python3 setup.py install 

 

然后给 Python3 安装 pip: 


  1. wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb  
  2. tar -zxvf pip-8.0.2.tar.gz  
  3. cd pip-8.0.2  
  4. python3 setup.py build  
  5. 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 创建新项目

我们来创建一个新项目。

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

主要的参数有两个,一个是 Location ,项目的地址。

第二个是 Project Interpreter 项目解释器,也就是你要使用哪个 Python 。如果选择 New environment using 呢,就是新建一个虚拟环境,和本机安装的 Python 互不干扰。如果选择 Existing Interpreter,则是使用本机的现有环境。

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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

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

2.2 改变已有项目的环境

如果一开始配置错了,那么该怎么办呢?

点击 Pycharm > Preference > Project > Project Interpreter设置即可。

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

2.3 Pycharm 中包的安装

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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

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

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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

只要到 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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

如下内容是要我们填写的:

  • SFTP host:服务器地址
  • Port:端口,默认22,一般不用改它。
  • Root path:在服务器上的路径。
  • User name:服务器上的用户名
  • Password:服务器上的密码

再点击Mapping:

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

  • Local path:映射到服务器上对应位置的本机地址
  • Deploy path:服务器上的文件夹位置。Root path + Deploy path 就是服务器上我们文件所在的完整路径。

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

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

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

添加远程 Python 解释器

接下来我们添加远程 Python 解释器,就能在本地「遥控」远程的服务器执行我们的 Python 程序了。

点击 Pycharm > Preference > Project > Project Interpreter > SSH Interpreter

输入 地址、用户名、密码三件套。

超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

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/MixinEOSPlayer/tree/master/Python/FlaskSketchNosql

有数据库的 Flask 框架:

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

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

  1. pip install -r requirements.txt

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

  1. python3 run.py
超级实用的Python环境搭建以及神器推荐!抓紧时间收藏

 

如果显示`Running on http://127.0.0.1:5000 表示框架运行正常。

4.2 安装 Nginx、Gunicorn 与 Supervisor

在服务器上运行:

  1. apt install nginx
  2. pip3 install gunicorn
  3. apt 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. }

我们要做以下两件事:

  • 修改 root 为我们前端文件所在的目录。
  • 在 location 中添加一行 expires-1;,以让页面能即时刷新。

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.py,run.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

就能解决。

5 总结

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

  • 如何安装 Python
  • 如何安装及使用 Pip
  • Pycharm 本地怎么配置
  • Pycharm 如何配置远程调试环境
  • 怎么在服务器上搭一个以 Python 为后端核心的网站

希望能对大家有所帮助!