当前位置: 首页 > 后端技术 > Python

如何在不能外出的主机上快速、方便、优雅地安装Python库?

时间:2023-03-26 01:14:48 Python

场景描述假设你的生产环境(或者线上环境)是一台内网主机,不能出Internet(也就是不能上网),但是需要安装第三方Python库,你该怎么办??在这篇文章中,笔者使用Flask库(轻量级Web框架)的安装来进行讲解。经过分析,Flask本身也依赖了很多其他的库。目前未知有多少依赖项以及依赖项是什么。下面,笔者就分享一下我认为最快、最方便、最优雅、最不痛苦的安装方法。希望能达到引玉的效果。如果大家有更好的安装方法,非常希望大家贡献和分享。确认线上主机的Python版本下面的操作就是确认线上主机的python版本#python--versionPython2.7.5比如作者是python2.7.5然后在本地主机上确认python的版本下面的操作在自己本地的测试机上执行#确认python版本[root@host-for-devsoft-tmp]#python--versionPython2.7.5[root@host-for-devsoft-tmp]##同时确认flask尚未安装[root@host-for-devsoft-tmp]#pythonPython2.7.5(default,Nov162020,22:23:17)[GCC4.8.520150623(RedHat4.8.5-44)]在linux2上键入“help”、“copyright”、“credits”或“license”以获得更多信息。>>>importflaskTraceback(mostrecentcalllast):File"",line1,inImportError:Nomodulenamedflask>>>很幸运嗯,正好作者的默认Python本地CentOS也是2.7.5版本。如果没有,那么你需要编译安装一个和网上一样的版本。前戏结束!下面正式进入正题。以下操作均在您本地的测试机上进行。打开https://pypi.org/搜索pip查看之前的版本。需要找一个支持python2.7的pip下载源码包。按照相同的程序下载setuptools。源码包安装setuptoolsunzipsetuptools-44.1.1.zippythonsetup.pyinstall然后安装pipcdpip-20.3.4pythonsetup.pyinstall验证pip是否安装成功[root@host-for-dev~]#pip-Vpip20.3.4from/usr/lib/python2.7/site-packages/pip-20.3.4-py2.7.egg/pip(python2.7)[root@host-for-dev~]#下载Flask及其相关依赖,格式为whl格式[root@host-for-devsoft-tmp]#mkdirflask-pak[root@host-for-devsoft-tmp]#cdflask-pak/[root@host-for-devflask-pak]#[root@host-for-devflask-pak]#pipdownloadFlask弃用:Python2.7已于2020年1月1日结束。请升级您的Python,因为不再维护Python2.7。pip21.0将于2021年1月停止支持Python2.7。有关pip中Python2支持的更多详细信息,请访问https://pip.pypa.io/en/latest/development/release-process/#python-2-supportpip21.0将删除对此功能的支持。收集瓶下载Flask-1.1.4-py2.py3-none-any.whl(94kB)|████████████████████████████████|94kB216kB/s收集点击<8.0,>=5.1下载点击-7.1.2-py2.py3-none-any.whl(82kB)|████████████████████████████████|82kB237kB/s收集Jinja2<3.0,>=2.10.1下载Jinja2-2.11.3-py2.py3-none-any.whl(125kB)|████████████████████████████████|125kB171kB/s收集Werkzeug<2.0,>=0.15下载Werkzeug-1.0.1-py2.py3-none-any.whl(298kB)|████████████████████████████████|298kB54kB/s收集itsdangerous<2.0,>=0.24下载itsdangerous-1.1.0-py2.py3-none-any.whl(16kB)收集MarkupSafe>=0.23下载MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl(24kB)保存./Flask-1.1.4-py2.py3-none-any.whlSaved./click-7.1.2-py2.py3-none-any.whlSaved./Jinja2-2.11.3-py2.py3-none-any.whlSaved./Werkzeug-1.0.1-py2.py3-none-any.whlSaved./itsdangerous-1.1.0-py2.py3-none-any。whlSaved./MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl成功下载Flask点击Jinja2Werkzeug其危险的MarkupSafe[root@host-for-devflask-pak]#lltotal640-rw-r--r--1rootroot82780Jun2421:33click-7.1.2-py2.py3-none-any.whl-rw-r--r--1rootroot94591Jun2421:33Flask-1.1.4-py2.py3-none-any.whl-rw-r--r--1rootroot16743Jun2421:33itsdangerous-1.1.0-py2.py3-none-any.whl-rw-r--r--1root根125699Jun2421:33Jinja2-2.11.3-py2.py3-none-any.whl-rw-r--r--1root24348Jun2421:33MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl-rw-r--r--1rootroot298631Jun2421:33Werkzeug-1.0.1-py2.py3-none-any.whl[root@host-for-devflask-pak]#关于Flasklibrary依赖项是什么?答案很明显,如下:click-7.1.2-py2.py3-none-any.whlFlask-1.1.4-py2.py3-none-any.whl#除了Flask本身,是否依赖其他whl格式包itsdangerous-1.1.0-py2.py3-none-any.whlJinja2-2.11.3-py2.py3-none-any.whlMarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whlWerkzeug-1.0.1-py2.py3-none-any.whl然后打包flask-pak目录[root@host-for-devsoft-tmp]#tar-zcfflask-pak.tar.gzflask-pak/将以下3个包自行上传到在线主机(不能出网的主机)flask-pak.tar.gzpip-20.3.4.tar.gzsetuptools-44.1.1.zip上传到在线主机(不能出网的主机),安装setuptools和pip,这里不再演示步骤。至此,本地测试主机的操作就结束了。开始在在线内网主机(不能上外网的主机)上安装Flask库,请切换你的在线主机(不能上外网的主机),然后解压flask-pak.tar.gz[root@hngz3-YWGLXT-PRM-ser07~/soft_pak]#tar-zxfflask-pak.tar.gz[root@hngz3-YWGLXT-PRM-ser07~/soft_pak/flask-pak]#lltotal640-rw-r--r--1rootroot82780Jun242022click-7.1.2-py2.py3-none-any.whl-rw-r--r--1rootroot94591Jun242022Flask-1.1.4-py2。py3-无-任何。whl-rw-r--r--1根root167432022年6月24日itsdangerous-1.1.0-py2.py3-none-any.whl-rw-r--r--1根root1256992022年6月24日Jinja2-2.11.3-py2.py3-none-any.whl-rw-r--r--1rootroot243482022年6月24日MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl-rw-r--r--1rootroot298631Jun242022Werkzeug-1.0.1-py2.py3-none-any.whl安装Flask#installpipinstallWerkzeug-1.0.1-py2.py3-none-any.whlpipinstallMarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whlpip安装Jinja2-2.11.3-py2.py3-none-any.whlpip安装它的dangerous-1.1.0-py2.py3-none-any.whlpip安装click-7.1.2-py2。py3-none-any.whlpip安装Flask-1.1.4-py2.py3-none-any.whl注意安装顺序,先安装依赖,最后安装Flask-1.1.4-py2.py3-none-any.whl,验证是否是flask安装好后输入python,importFlask看能不能导入。如果导入成功,则安装成功[root@hngz3-YWGLXT-PRM-ser07~/soft_pak/flask-pak]#pythonPython2.7.5(default,Oct302018,23:45:53)[GCC4.8.520150623(RedHat4.8.5-36)]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importflask>>>fromflaskimportFlask,requestwrite好吧在最后!笔者分享完了我认为最快、最方便、最优雅、最不痛苦的安装方法。如果你觉得不是最好的方法,欢迎来黑我,更欢迎你投稿安装你认为最好的方法。方法共享,有稿费。好了,到这里就不写了,希望各位朋友多多关注我们,多点赞转发,万分感谢!本文转载于:https://mp.weixin.qq.com/s/-j...