python开发环境配置与部署

来源:互联网 发布:灰蚂蚁太阳镜 知乎 编辑:程序博客网 时间:2024/06/05 17:27

一. 安装python

should I use Python 2 or Python 3 for my development activity?

Short version: Python 2.x is legacy, Python 3.x is the present and future of the language

python2还是python3, 官网上是这样说明的
现在比较推崇的是python3:

  • 首先, Python2只会停留在2.7版本, 不会再重大更新, Python3才是未来
  • 其次, python3默认支持Unicode, 很多工作会变得容易
  • 第三, 很多第三方库都已经支持了Python3

二. pip的配置与使用

1. 基本配置

pip默认会使用官方的源, 在国内下载速度不是很好, 因此可以配置国内镜像, 提高下载速度

三种顺序的配置

  1. site-wide 配置文件位置: C:\ProgramData\pip\pip.ini
  2. per-user 配置文件位置: %APPDATA%\pip\pip.ini或者%HOME%\pip\pip.ini
  3. virtualenv 配置文件位置: %VIRTUAL_ENV%\pip.ini

如果, 在以上位置没有找到pip.ini文件, 可以自己在任意位置创建一个, 然后设置环境变量PIP_CONFIG_FILE指向该文件, 文件内容为:

pip.ini:

[global]index-url = https://pypi.douban.com/simple

pipy国内镜像目前有:

  • http://pypi.douban.com/ 豆瓣
  • http://pypi.hustunique.com/ 华中理工大学
  • http://pypi.sdutlinux.org/ 山东理工大学
  • http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学

pip.ini文件中的地址可以上面的国内镜像地中任意选择一个

需要注意的是, 在Ubuntu系统中, 配置文件名应为pip.conf

2. pip的基本操作

最常用的命令是查看安装包和安装等

2.1 查看命令

pip list --format=columns  # 显示安装的包列表pip list --format=legacy  # 传统显示pip list --format=json  # json方式显示 pip list --format=freeze  # freeze命令形式显示 

2.2 安装相关命令

安装包, 有三种不同的形式供选择:

pip install SomePackage            # latest versionpip install SomePackage==1.0.4     # specific versionpip install 'SomePackage>=1.0.4'     # minimum version

wheels文件安装包:

pip install SomePackage-1.0-py2.py3-none-any.whl

利用requirement.txt安装包:

pip install -r requirements.txt

requirement.txt是一个指定依赖包的文件, 可以很方便的下载所以的依赖包, 可以利用pip的命令很快的生成这个依赖文件, 在部署应用的时候应该经常用到:

pip freeze > requirement.txt

删除包命令:

pip uninstall SomePackage

更多命令, 参考pip官方文档

三. 使用虚拟环境virtualenv

为什么要使用虚拟环境? virtualenv可以为不同的项目生成一个个隔离运行的环境, 防止不同版本依赖问题, 便于管理

1. 安装virtualenv包

默认的python3环境没有安装virtualenv工具, 可以通过pip命令进行安装:

pip install virtualenv

2. 创建虚拟环境

在你喜欢的位置新建一个文件夹, 用来存放虚拟环境就可以了:

virtualenv --no-site-packages myflask

上述命令之后, 会在你的文件夹下产生一个myflask文件夹, 里面就是名为myflask的虚拟环境

3. 激活虚拟环境

windows环境:

./venv/myflask/Scripts/activate

linux环境:

source /venv/myflask/Scripts/activate

4. 使用虚拟环境过程中的问题

有些包无法用pip直接下载, 可以把下载下来的.exe安装包文件, 放在一定的位置, 然后用easy_install命令进行安装

5. 离开虚拟环境

deactivate

更多关于virtualenv的内容, 参考官方文档

四. 使用git

git命令:

从bae远程仓库克隆出本地仓库

git clone https://git.duapp.com/your_bae_appid my_flask

本地文件复制修改完后:

git add -Agit commit -m "initial"git push

git 记住用户名密码:

$ git config --global user.name [name]$ git config --global user.emial [email]$ git config --global credential.helper store

更多内容, 参考官方文档

五. 部署flask应用到远程服务器(pythonanywhere)

The process of deploying an app on PythonAnywhere involves three main steps:

1. Uploading your code to PythonAnywhere2. Setting up a virtualenv, if you need one3. Configuring your application using WSGI

NB - only WSGI apps are supported, so that includes anything built with Django, Flask, Bottle,etc, but custom servers using, eg, Tornado, probably won’t work.

1. 新建一个web app, 选择手工配置

Manual configuration involves editing your own WSGI configuration file in /var/www/. Usually this imports a WSGI-compatible application which you've stored elsewhereWhen you click "Next", we will create a WSGI file for you, including a simple "Hello World" app which you can use to get started, as well as some comments on how to use other frameworks.You will also be able to specify a virtualenv to use for your app.

2. 从github拉取代码

3. 创建virtualenv

4. 在虚拟环境中下载所需的包

5. 配置WSGI文件

环境变量要在这里设置

import osos.environ['FLASK_CONFIG'] = 'production'

6. flask使用flask_sqlalchemy

要下载linux下相应mysql的模块

pip install mysql-python

数据库路径也有相应的变化

os.environ['DATABASE_URI'] = 'mysql+mysqldb://username:password@wangmiao.mysql.pythonanywhere-services.com/databasename'

使用不同的mysql数据库驱动, 数据库连接路径也有不同

使用pymsql时:

os.environ['DATABASE_URI'] = 'mysql+pymysql://username:password@wangmiao.mysql.pythonanywhere-services.com/databasename'

六: 附加内容

1. 编辑器

编辑器当然要选择自己顺手的, 集成度较高的可以选择pycharm, 但我更喜欢用sublime text3, 选择sublime text3的原因有以下几点:

  • 启动速度快, 流畅
  • 界面简洁, 设置简单
  • 插件比较丰富
  • 快捷键比较高效

1.1 下载安装

下载地址

注册码的话, 网上可以很方便找到

1.2 插件安装

插件安装之前, 需要先安装package control插件, 用于安装其他插件

package control可以通过sublime text3的命令窗口进行安装, 使用ctrl+`或者 view > Show Console 菜单打开命令窗口, 输入以下代码, 回车:

import urllib.request,os,hashlib;h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76';pf = 'Package Control.sublime-package';ipp = sublime.installed_packages_path();urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) );by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read();dh = hashlib.sha256(by).hexdigest();print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

image

package control插件安装之后就可以直接在sublime text3中通过shift+ctrl+p, 选择Install Package来安装其他插件了

image

python环境比较有用的插件

  • Anaconda: 代码规范检查, 代码提示
  • Git: git版本管理插件
  • AutoDocstring: 文档注释插件
  • DocBlockr_Python: 文档注释

2. win下的增强命令行工具

cmder, 下载地址, 可以下载mini版, 启动速度快, 主要是几款比较好看的配色方案, 字体可以自定义

3. 不容易安装的python包whl包下载地址

在windows下, 有些包不能直接通过pip下载官网的包, 比如scipy, 可以在这个地址, 找到相应的包, 下载安装就可以了