关于python:不可出外网的主机如何快速方便优雅的安装Python库

场景形容

做一个假如,您的生产环境(或者说线上环境)是处于内网的主机,且不能出外网(也就是不能上网),但又须要装置Python的第三方库,怎么办?在本篇文章中,笔者拿装置Flask库(轻量级web框架)来解说,经剖析Flask自身还依赖了其余泛滥的库。依赖了有多少,依赖的是哪些,这些目前都是未知的。上面笔者把认为最疾速、最不便、最优雅、最没那么遭罪的装置方法进行分享,心愿能够做到抛砖引玉的成果,如果您有更好的装置办法,笔者十分心愿您能来稿进行分享。

确认线上主机的Python版本

上面操作是为了确认线上主机的python版本

# python --version
Python 2.7.5

比方笔者的是python2.7.5

接着在本地主机确认python版本

上面操作是在本人的本地测试机上进行

# 确认python版本
[root@host-for-dev soft-tmp]# python --version
Python 2.7.5
[root@host-for-dev soft-tmp]# 

# 同时确认一下的确没有装置过flask
[root@host-for-dev soft-tmp]# python
Python 2.7.5 (default, Nov 16 2020, 22:23:17) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named flask
>>> 

运气十分好,刚好笔者本地的CentOS默认的Python也是2.7.5版本。如果不是,那么就须要编译装置一个和线上一样的版本了。


前戏完结!上面正式进入主题

上面的操作均在本人的本地测试机上进行哈

关上https://pypi.org/

搜寻pip

查看以往的版本

须要找到反对python2.7的pip

下载源码包

依照同样的套路,下载setuptools的源码包

装置setuptools

unzip setuptools-44.1.1.zip
python setup.py install

接着装置pip

cd pip-20.3.4
python setup.py install

验证pip是否装置胜利

[root@host-for-dev ~]# pip -V
pip 20.3.4 from /usr/lib/python2.7/site-packages/pip-20.3.4-py2.7.egg/pip (python 2.7)
[root@host-for-dev ~]# 

下载Flask的和与其无关的依赖,格局是whl格局

[root@host-for-dev soft-tmp]# mkdir flask-pak
[root@host-for-dev soft-tmp]# cd flask-pak/
[root@host-for-dev flask-pak]# 
[root@host-for-dev flask-pak]# pip download Flask
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Collecting Flask
  Downloading Flask-1.1.4-py2.py3-none-any.whl (94 kB)
     |████████████████████████████████| 94 kB 216 kB/s 
Collecting click<8.0,>=5.1
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 237 kB/s 
Collecting Jinja2<3.0,>=2.10.1
  Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 171 kB/s 
Collecting Werkzeug<2.0,>=0.15
  Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
     |████████████████████████████████| 298 kB 54 kB/s 
Collecting itsdangerous<2.0,>=0.24
  Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting MarkupSafe>=0.23
  Downloading MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl (24 kB)
Saved ./Flask-1.1.4-py2.py3-none-any.whl
Saved ./click-7.1.2-py2.py3-none-any.whl
Saved ./Jinja2-2.11.3-py2.py3-none-any.whl
Saved ./Werkzeug-1.0.1-py2.py3-none-any.whl
Saved ./itsdangerous-1.1.0-py2.py3-none-any.whl
Saved ./MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
Successfully downloaded Flask click Jinja2 Werkzeug itsdangerous MarkupSafe
[root@host-for-dev flask-pak]# ll
total 640
-rw-r--r-- 1 root root  82780 Jun 24 21:33 click-7.1.2-py2.py3-none-any.whl
-rw-r--r-- 1 root root  94591 Jun 24 21:33 Flask-1.1.4-py2.py3-none-any.whl
-rw-r--r-- 1 root root  16743 Jun 24 21:33 itsdangerous-1.1.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 125699 Jun 24 21:33 Jinja2-2.11.3-py2.py3-none-any.whl
-rw-r--r-- 1 root root  24348 Jun 24 21:33 MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
-rw-r--r-- 1 root root 298631 Jun 24 21:33 Werkzeug-1.0.1-py2.py3-none-any.whl
[root@host-for-dev flask-pak]# 

对于Flask库的依赖到底有有哪些?答案很显著了,如下:

click-7.1.2-py2.py3-none-any.whl
Flask-1.1.4-py2.py3-none-any.whl # 除了Flask自身,其它的whl格局的包,都是它所依赖的。
itsdangerous-1.1.0-py2.py3-none-any.whl
Jinja2-2.11.3-py2.py3-none-any.whl
MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
Werkzeug-1.0.1-py2.py3-none-any.whl

接着打包flask-pak目录

[root@host-for-dev soft-tmp]# tar -zcf flask-pak.tar.gz flask-pak/

自行将上面3个包上传到线上的主机(不可出外网的主机)

flask-pak.tar.gz
pip-20.3.4.tar.gz
setuptools-44.1.1.zip

上传到线上主机(不可出外网的主机)后,依照同样的套路装置好setuptools和pip,在此不再演示步骤。且到此为止,在本地测试主机的操作就此结束。


线上内网主机(不可出外网的主机)上开始装置Flask库

上面的操作请切换您的线上主机(不可出外网的主机)

接着解压flask-pak.tar.gz

[root@hngz3-YWGLXT-PRM-ser07 ~/soft_pak]#  tar -zxf flask-pak.tar.gz
[root@hngz3-YWGLXT-PRM-ser07 ~/soft_pak/flask-pak]#  ll
total 640
-rw-r--r-- 1 root root  82780 Jun 24  2022 click-7.1.2-py2.py3-none-any.whl
-rw-r--r-- 1 root root  94591 Jun 24  2022 Flask-1.1.4-py2.py3-none-any.whl
-rw-r--r-- 1 root root  16743 Jun 24  2022 itsdangerous-1.1.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 125699 Jun 24  2022 Jinja2-2.11.3-py2.py3-none-any.whl
-rw-r--r-- 1 root root  24348 Jun 24  2022 MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
-rw-r--r-- 1 root root 298631 Jun 24  2022 Werkzeug-1.0.1-py2.py3-none-any.whl

装置Flask

# 装置
pip install Werkzeug-1.0.1-py2.py3-none-any.whl
pip install MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
pip install Jinja2-2.11.3-py2.py3-none-any.whl
pip install itsdangerous-1.1.0-py2.py3-none-any.whl
pip install click-7.1.2-py2.py3-none-any.whl
pip install Flask-1.1.4-py2.py3-none-any.whl

留神装置程序,先装置依赖,最初再装置Flask-1.1.4-py2.py3-none-any.whl

验证flask是否装置实现

进入python,导入flask看看是否能导入,导入胜利阐明装置胜利

[root@hngz3-YWGLXT-PRM-ser07 ~/soft_pak/flask-pak]#  python
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> from flask import Flask, request

写在最初

好了!笔者曾经把认为最疾速、最不便、最优雅、最没那么遭罪的装置方法分享完结了。如果您认为不是最好的办法,欢送来怼我,更欢迎您能够来稿,把您认为最好的装置办法分享进去,有稿费哦。好了,就此搁笔,望宽广敌人能多多关注咱们,望多多点赞、转发,非常感谢!

本文转载于:https://mp.weixin.qq.com/s/-j…

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据