Flask及Pypi离线部署

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ximenjianxue/article/details/100540733

概述

Flask是一个使用Python 编写的轻量级Web 应用框架。

WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。Flask是用python进行web开发时,常见的python web框架。
Flash官方文档:http://docs.jinkan.org/docs/flask/installation.html
在这里插入图片描述

背景说明

近期,集团某电量采集项目中,需要部署一个图形解析服务器,但服务器无法连接外网,研发人员开发工作需要构建pypi环境;如果服务器可以连接到外网,可以简单的用 pip install Flask 直接将Flask的依赖包及Flask直接安装好。然而本次项目中只能---->离线安装。

Python package index(Pypi)环境安装

flask下载地址:https://github.com/pallets/flask
在这里插入图片描述
官方说:flask 依赖两个外部库:Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI(在 Web 应用和多种服务器之间的标准 Python 接口) 工具集。Jinja2 负责渲染模板。但是实际安装flask之前,需要先安装其依赖包;可参考一下列表:
1、click-6.7-py2.py3-none-any.whl
2、itsdangerous-0.24.tar.gz
3、markupsafe-1.0.tar.gz
4、werkzeug-0.14.1-py2.py3-none-any.whl
5、jinja2-2.10-py2.py3-none-any.whl
6、flask-1.0.2-py2.py3-none-any.whl

3.1、flask依赖包下载

在这里插入图片描述Werkzeug>=0.15
Jinja2>=2.10.1, which requires:
MarkupSafe
Babel>=0.8, which requires:
pytz
itsdangerous>=0.24
click>=5.1
以上依赖包需要按照顺序进行按照,版本只做参考,你可以使用最新版。

Flask安装所依赖包的版本:less /usr/local/flask-master/setup.py

在这里插入图片描述
软件包下载地址:https://pypi.python.org/pypi

Werkzeug 0.15.5下载

下载地址:https://pypi.org/project/Werkzeug/#files
在这里插入图片描述

Jinja2 2.10.1

下载地址:https://pypi.org/project/Jinja2/#files
在这里插入图片描述

MarkupSafe 1.1.1

下载地址:https://pypi.org/project/MarkupSafe/#files
在这里插入图片描述

Babel 2.7.0

下载地址:https://pypi.org/project/Babel/#files
在这里插入图片描述

pytz 2019.2

下载地址:https://pypi.org/project/pytz/#files
在这里插入图片描述

itsdangerous 1.1.0

下载地址:https://pypi.org/project/itsdangerous/#files
在这里插入图片描述

click

下载地址:https://pypi.org/project/click/#files
在这里插入图片描述

setuptools 41.2.0

下载地址:https://pypi.org/project/setuptools/#files
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 Flask依赖包安装(即Pypi)

解压上图中各软件包后,按照软件依赖顺序依次安装:

unzip setuptools-41.2.0.zip
tar -zxvf Werkzeug-0.15.5.tar.gz
tar -zxvf Jinja2-2.10.1.tar.gz
tar -zxvf MarkupSafe-1.1.1.tar.gz
tar -zxvf itsdangerous-1.1.0.tar.gz
tar -zxvf Click-7.0.tar.gz 
tar -xzf Babel-2.7.0.tar.gz  ##安装时报无法下载pytz
tar -xzf pytz-2019.2.tar.gz  ##需要先安装然后再安装Babel

在这里插入图片描述
在这里插入图片描述
需要setuptools包支持,因此需要下载该软件包;

1)安装setuptools:setuptools41.2.0
在这里插入图片描述
2)安装:Werkzeug
0.15.5
在这里插入图片描述
3)安装:MarkupSafe1.1.1
在这里插入图片描述
4)安装:Jinja2
2.10.1
在这里插入图片描述
5)安装:itsdangerous1.1.0
在这里插入图片描述
6)安装:Click
7.0
在这里插入图片描述
7)安装:pytz2019.2
在这里插入图片描述
8)安装:Babel
2.7.0
在这里插入图片描述
9)安装:Flask==1.1.2.
在这里插入图片描述

3.3安装后验证

在这里插入图片描述

3.4安装报错:

3.4.1 安装python包报错:No module named setuptools

[root@JCJK Flask-deps]# cd Click-7.0
[root@JCJK Click-7.0]# ls
artwork click CONTRIBUTING.rst examples MANIFEST.in README.rst setup.py tox.ini
CHANGES.rst Click.egg-info docs LICENSE.rst PKG-INFO setup.cfg tests
[root@JCJK Click-7.0]# python setup.py install
Traceback (most recent call last):
File “setup.py”, line 3, in
from setuptools import setup
ImportError: No module named setuptools
处理:setuptools安装包

3.4.2安装setuptools报错:No module named sysconfig

[root@JCJK Flask-deps]# cd setuptools-41.2.0
[root@JCJK setuptools-41.2.0]# ls
bootstrap.py docs LICENSE pavement.py pytest.ini setup.py tests
CHANGES.rst easy_install.py MANIFEST.in PKG-INFO README.rst setuptools towncrier_template.rst
conftest.py launcher.c msvc-build-launcher.cmd pkg_resources setup.cfg setuptools.egg-info tox.ini
[root@JCJK setuptools-41.2.0]# python easy_install.py
Traceback (most recent call last):
File “easy_install.py”, line 4, in
from setuptools.command.easy_install import main
File “/usr/local/Flask-deps/setuptools-41.2.0/setuptools/init.py”, line 18, in
import setuptools.version
File “/usr/local/Flask-deps/setuptools-41.2.0/setuptools/version.py”, line 1, in
import pkg_resources
File “/usr/local/Flask-deps/setuptools-41.2.0/pkg_resources/init.py”, line 959, in
class Environment:
File “/usr/local/Flask-deps/setuptools-41.2.0/pkg_resources/init.py”, line 963, in Environment
self, search_path=None, platform=get_supported_platform(),
File “/usr/local/Flask-deps/setuptools-41.2.0/pkg_resources/init.py”, line 190, in get_supported_platform
plat = get_build_platform()
File “/usr/local/Flask-deps/setuptools-41.2.0/pkg_resources/init.py”, line 393, in get_build_platform
from sysconfig import get_platform
ImportError: No module named sysconfig
经查相关资料,默认系统python版本是2.7版本,直接使用python setup.py install会调用python2.7,而setuptools版本因是最新版,其37版本后就不支持python2.7了,故可悬着setuptools37或之前版本,或直接用python3的绝对路径调用python3.
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/100540733