Python新手如何区分生产环境和测试环境?

刚学 python, 本地测试 windows 有一套 py 的环境和三方库, linux 服务器上的 py 环境每一次都需要同步一次 windows 的三方库吗?

之前一直用的 java,通过打包可以把依赖直接放进 jar 中,这样在任何服务器上就只需要一个运行环境就可以。 Python 有这一套东西吗? 还没开始实施,有些方面疑问。


Python新手如何区分生产环境和测试环境?
11 回复

了解一下 python 的虚拟环境 Virtualenv
可以 打包发布, 跟你说的效果一样。
大概意思是:
1.创建虚拟环境
2.使用 pip 等包管理安装包
3.打包你的环境并发布

有一篇虚拟环境的文章推荐给你(我自己写的。。。)

https://www.zhutingyu.com/python-xu-ni-huan-jing


核心就两点:配置隔离环境标识

别在代码里写死配置。用环境变量或者独立的配置文件。比如建个config.py

import os

class Config:
    SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key')
    DATABASE_URI = os.getenv('DATABASE_URI', 'sqlite:///dev.db')
    DEBUG = False

class DevelopmentConfig(Config):
    DEBUG = True

class ProductionConfig(Config):
    SECRET_KEY = os.getenv('SECRET_KEY')  # 生产环境必须设置
    DATABASE_URI = os.getenv('DATABASE_URI')

# 通过环境变量决定用哪个配置
env = os.getenv('FLASK_ENV', 'development')
if env == 'production':
    config = ProductionConfig()
else:
    config = DevelopmentConfig()

然后通过一个叫FLASK_ENV或者APP_ENV的环境变量来切换。启动时这么干:

# 测试环境
export FLASK_ENV=development
python app.py

# 生产环境
export FLASK_ENV=production
python app.py

简单说,就是用环境变量来切换配置

pip freeze > requirements.txt 导出依赖文件
pip install -r requirements.txt 安装

我是这样搞定依赖的, 其他不太清楚

Virtualenv 可以看我的博客

建议去 github 看看 pipenv

环境 | Flask 之旅 : https://spacewander.github.io/explore-flask-zh/3-environment.html

这篇文 的 这个章节,讲的 py 环境管理,非常适合

此外,这两年也很流行用 Docker 来让开发环境与生产环境高度一致化和发布简单化。

谢谢,springboot 发布也用到了 docker。我去了解下

虚拟环境,建议 miniconda, 其它的多多少少都有点问题,尤其在 win 上,有些包可能都安装不上

用 pipenv 吧,比 Virtualenv 好使
顾名思义 pip+env

开发一个环境,最后部署的化用 docker 会比较好

回到顶部