问题描述:

  公司的windows电脑是内网,今天需要安装一个Twisted库,用过的应该都晓得,很常见的异步库,但是仅仅依靠Pypi上下载下来的离线.whl安装包是不行的,linux服务器都是远程连接和操作的,对于使用python的同志们就非常不友好了,因为有众多的第三方库需要联网下载并安装的,如果有网就能够解决非常多的问题,少花费很多时间了,经过长时间的查阅资料和研究,刚刚解决了一个这类的问题,感觉这类的回答蛮少的,也不太具体,特此记录,希望能帮到有遇到同样情况的朋友们(一般是有各种上网限制策略的公司会碰到)。

  另:适用于公司电脑网速下载三方库很慢,但是自己电脑网速很快(开热点,VPN,FanQ等各种手段),可以在自己电脑上下号离线包后,拷贝过去的情况

需要准备的工具/条件:

  1. 公司电脑---用于接收离线安装包(无法联网/只能浏览器上网(如果去网上下离线包,你就会碰到令人绝望的依赖包问题),但是诸如pycharm,cmd等都无法联网的电脑,*笔者就是如此),但是可以通过U盘、其他三方工具(如FileZilla等传文件到数据库),传输数据到该电脑的条件***必备条件,如果任何数据都不能拷贝到这台电脑上,那要它有何用?反正总有一种方法能够传输。

  2.自己的电脑/任何可以联网的电脑、服务器等设备,网速快,分分钟下好的那种

解决步骤:

  1. 发现问题:

    1)去Pypi上搜索Twisted,链接:https://pypi.org/,最新版本19.2.1的windos好像不能用,看样子是tar.gz格式的,应该只支持linux吧,这不重要,去release中找一下上个版本的离线包,download下来离线包Twisted-19.2.0-cp27-cp27m-win_amd64.whl,

    2)离线安装包命令:pip install <包名>      

      * 笔者公司电脑有python2.7和3.7两个环境,默认的会用python3.7环境,故使用命令:

pip2 install Twisted-19.2.0-cp27-cp27m-win_amd64.whl

    日常报错如下:

    Collecting Automat>=0.3.0 (from Twisted==19.2.0) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, stat us=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.c onnection.VerifiedHTTPSConnection object at 0x0000000003E4BC50>: Failed to estab lish a new connection: [Errno 10061] ',)': /simple/automat/

    一看就是要先安装依赖包的样子,故继续去Pypi下Automat,结果又报错,需要PyHamcrest,子子孙孙无穷尽也。。。额,当时打算头铁一下,全部手动去Pypi上下下来的。。。。结果发现有一个包的最新版本是2016年更新的,官网上写着只支持py2.6。。。感受到了绝望,随机转向自己的电脑谋求解决方案

  2.另谋出路:

    1)自己电脑上就开心了嘛,有网络就是可以为所欲为~~~这个地方有个问题:我们只需要将Twisted的安装包以及依赖给下载下来,然后再copy到公司电脑上,如果在自己电脑上安装好Twisted以后,再使用网上大部分推荐的方式: pip freeze > requirements.txt 方式的话,会将自己电脑里所有的库全都打包,这是没有必要的(毕竟我自己电脑上的包有点多。。。几百M应该要吧)

    2)故,有没有一个命令能够只将所需要的库机器依赖的库给下载下来,并放在我们指定的目录能?

答案当然是:有!!!如下:

pip download 你的包名 -d "你的文件夹路径(windows下貌似两边要加双引号来表示文件夹)"

* 笔者电脑依然是双python版本,且默认版本是python3,还让我给改了环境变量,故采取另外一种命令:

py -2 -m pip download Twist==19.2.0(此处为你的包名即指定的版本) -d "twist==19.2.0" (此处为你的文件夹位置,我是在当前路径下建立的,注意你的路径位置,如果不是你想要的路径,可能就下到命令行的当前路径去了,自己切换一下)

    3)结果就是,当当当当:尼玛,10个依赖包,加上自己有11个。。。还好我没继续头铁。。。

    4)接下来就好说了,压缩打包,名字随意起,如:twisted==19.2.0.zip,传输到公司电脑上,解压,进入该文件夹(本来我以为能够直接pip install 该压缩包,然而事实果然大脸)

    5)  老老实实的输入所有包名吧,目前没发现有啥其他的好方法,好像pip install --no-index --find-links=  只能用于linux环境下吧,好在可以一口气将所有的包名都用tab补全了,即:

pip install 包名1 包名2 包名3 (全部都可以输入前两位字母补全)

  3.展示效果:

pip list
*笔者是py -2 -m pip list

  找一找,果然可以找到Twisted,安装完成,问题解决完毕!

  PS:如果是linux的话,可以用pip list |grep Twisted,但是如果配置差,或者包太多,可能会比较慢喔,还是用眼睛看吧,比较快

博客园的浏览量貌似没CSDN高吧,附上csdn的链接:https://blog.csdn.net/u014179267/article/details/95364220

离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)的更多相关文章

  1. 由导入paramkio包失败,而pip list又能查到此包,而引出的:离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(下:Linux环境中)

    问题描述: 公司的Linux服务器是内网,今天要实现某个功能,会用到python控制ssh,需要安装一个Paramkio库,和上一篇一样,仅仅依靠Pypi上下载下来的离线.whl安装包是不行的,lin ...

  2. 内网服务器离线编译安装mysql5.7并调优

    目录 内网服务器离线编译安装mysql5.7并调优 前言 关于MySQL 一.MySQL安装篇 部署环境 前期准备工具 挂载系统ISO镜像,配置yum源 二.MySQL调优篇 1.对MySQL进行安全 ...

  3. centos7下安装openvpn,访问内网服务器 (二) windows访问

    一.简介 在上一章中已经安装好了openvpn,并且已经启动成功,现在就可以通过openvpn的客户端进行连接访问内网服务器了. 二.安装openvpn客户端 下载地址: https://www.te ...

  4. 实用方法 - 解决360Doc文章不能复制的问题(实现不登录直接复制)

    问题: 有时搜索文章的时候看到一些有用的文字,或者在网上搜索一些文献资料,找到需要的部分后,通常都可以使用 Ctrl + C,或者右键复制下来.但有些网站,比如:360个人图书馆(360Doc)会强制 ...

  5. Windows环境中Openfire与Spark安装与配置指南

    安装软件: openfire3.9.3 spark2.6.3 安装环境: WindowsXP JDK1.6.0_21 Oracle 一.openfire安装 1.安装openfire3.9.3,下载地 ...

  6. Neo4j 第一篇:在Windows环境中安装Neo4j

    图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...

  7. 番外篇1:在Windows环境中安装JDK

    他山之石,可以攻玉!欢迎关注我的微信公众号 本文作为构建第一个Java程序的番外篇一,跟大家探讨下在Windows下怎么安装JDK.由于本人没有Mac,因此如果是Mac的同学,请自行百度哦! 读前预览 ...

  8. 在Windows环境中安装Neo4j

    图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...

  9. 运用Zabbix实现内网服务器状态及局域网状况监控(3) —— Zabbix服务端安装

    1. Zabbix服务端安装,基于LNMP PHP5.5+Nginx1.9安装配置:http://www.cnblogs.com/vurtne-lu/p/7707536.html MySQL5.5编译 ...

随机推荐

  1. Java - IO 扫描流:Scanner

    IO_扫描流:Scanner 在改进输出功能不足方面提供了打印流(PrintSream):利用BufferedReader类(缓冲输入流)解决了大文本数据的输入和读取操作,但是BufferedRead ...

  2. IDEA org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    引用地址:https://guozh.net/idea-org-apache-ibatis-binding-bindingexception-invalid-bound-statement-not-f ...

  3. String类型中 "=="和"equals"比较的差别

    String类型中 "=="和"equals"比较的差别 先说明一下String类型的变量的创建方式 在创建新的String类型的变量时,首先会在缓冲区查找是否 ...

  4. Oracle 统计表空间和对象历史增长量

    最近7天内 每天(某个)表空间的增长量 col TS_NAME for a15 SELECT a.snap_id, a.rtime, c.tablespace_name ts_name, round( ...

  5. Export Receives The Errors ORA-1555 ORA-22924 ORA-1578 ORA-22922 (Doc ID 787004.1)

    Export Receives The Errors ORA-1555 ORA-22924 ORA-1578 ORA-22922 (Doc ID 787004.1) APPLIES TO: Oracl ...

  6. 安装 tensorflow 1.1.0;以及安装其他相似版本tensorflow遇到的问题;tensorflow 1.13.2 cuda-10环境变量配置问题;Tensorflow 指定训练时如何指定使用的GPU;

    # 安装 2.7 环境conda create -n python2. python= conda activate python2. # 安装 1.1.0 gpu版本pip # 配置环境变量expo ...

  7. Win10家庭版激活方法

    由于电脑换过主板,系统过了段时间显示未激活的状态,当时没注意随着主板口袋里的密匙,当作垃圾一起扔了,在网上试了几种方式,以下这个方法让我成功激活了系统 对开始菜单点击右键,选择Windows Powe ...

  8. Octave计算数据

    设A=[1 2;3 4;5 6] B=[11 12;13 14;15 16] A.*B =     :对A以及B中的对应的元素进行相乘 11 24 39 56 75 96 A.^2 :对A中的每一个元 ...

  9. 201871010133-赵永军《面向对象程序设计(java)》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  10. promise 和 setTimeout 在任务队列的执行顺序

    setTimeout(() => { console.log() }); const a = new Promise((resolve,reject)=>{ console.log(); ...