背景
有些电脑可能使用内网,不能直接在联网环境下安装python依赖包。比如,我在离线环境下VS code不能支持跳转(已安装python插件),而之前VS code提示没有安装pylint,我以为是缺少这个的原因,因此下面将介绍我如何在离线环境下安装pylint。
前置条件:
1、要有一个联网的电脑
2、一个不能联网的电脑
3、在两个环境下都安装了python和pip:
如果没有安装可参考:
Windows如何安装pip–https://jingyan.baidu.com/article/ff42efa9d630e5c19e220207.html
离线安装步骤
1、在已联网的环境下安装pylint
我是在VS code中遇到提示“没有安装pylint”,然后点击安装。但我们也可以在cmd(Windows下的命令提示符)中通过命令:pip install pylint来安装。
2、查看pylint的依赖包
方法1:在联网环境下,pip安装pylint时,会自动下载需要的一些依赖包。以下是VS code中安装pylint的截图,红框所指即为自动下载依赖包的提示。红色箭头则提示正在安装依赖包。
如果是在cmd中安装的话,应该也会显示出上图类似的过程。从中可以了解到所需的依赖包。
方法2:通过在cmd中执行pip list,查看联网环境中python安装了哪些包:
同样在离线环境中我们也可以执行pip list来查看当前python中安装的包,两相对比就可知道缺少哪些依赖包。
方法2的缺点:如果你的联网环境安装了其他包,可能就不好明确知道pylint需要哪些包,以及这些包的安装(依赖)顺序。
3、下载依赖包
通过步骤2可知离线环境中安装pylint需要的依赖如下:
Package | Version |
---|---|
astroid | 1.6.6 |
backports.functools-lru-cache | 1.6.1 |
colorama | 0.4.3 |
configparser | 4.0.2 |
enum34 | 1.1.10 |
futures | 3.3.0 |
isort | 4.3.21 |
lazy-object-proxy | 1.5.1 |
mccabe | 0.6.1 |
pylint | 1.9.5 |
singledispatch | 3.4.0.3 |
six | 1.15.0 |
wrapt | 1.12.1 |
根据2中截图,依次安装这些包(依次安装时因为这些包之间可能也有依赖)。
顺序:Installing collected packages: mccabe, backports.functools-lru-cache, futures, isort, six, singledispatch, enum34, lazy-object-proxy, wrapt, astroid, configparser, colorama, pylint
知道了依赖包,则要下载他们。
下载地址为:
1、https://pypi.org (可以搜索所有的包,以及他们的各个发行版)
2、https://www.lfd.uci.edu/~gohlke/pythonlibs/(一般只有最新的两个版本)
通过以上地址可以下载到所有依赖包。以pylint为例,https://pypi.org/project提供了最新版的pylint:
然而我们的环境需要1.9.5的版本,从release history中选择1.9.5的版本就可以了。如下所示,pylint提供了两种形式的文件,优先下载.whl。有些包只有tar.gz文件,这时就只能下载他了。
4、安装过程
将3中的依赖包拷贝到离线环境中,然后按顺序安装。
如果是.whl的包,则在cmd中切换到该目录下,执行pip install pylint-1.9.5-py2.py3-none-any.whl
如果是tar.gz文件,则先用WinRAR解压,然后在cmd中切换到该目录下,执行python setup.py install
注意事项
1、安装顺序;2、包的版本
悲伤的是,虽然pylint安装好了,离线环境中python还是不能点击函数跳转,FUCK。