【持续更新】在虚拟环境下,解决模块无法下载成功的方法

场景:

以下就是遇到下载各个模块时,所遇到的不同的问题。

问题:

下载模块win32gui时出错
error: subprocess-exited-with-error
ModuleNotFoundError: No module named ‘win32.distutils.command’
note: This error originates from a subprocess, and is likely not a problem with pip.

解决方案:
由于本文使用的python3.7版本,它的win32gui集成到了pywin32中,所以只需下载pywin32,使用win32gui时不会报错。
只需下载pywin32即可
pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simple


下载comtypes出错
ERROR: Cannot determine archive format of C:\Users\用户名\AppData\Local\Temp\pip-req-build-bqigqnga

解决方案:
更换源下载时会出现该错误 只需在命令中加入 --trusted-host 源的名称 即可
如:pip install comtypes -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn


下载dlib出错
Building wheel for dlib (setup.py) … error

解决方案:
pip install cmake
pip install boost


pip install cmake出现错误:
ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

解决方法:
unset all_proxy


下载skimage出错:

ERROR: Could not find a version that satisfies the requirement skiamge (from versions: none)
ERROR: No matching distribution found for skiamge

解决方法: pip install scikit-image


下载tensoflow出错:

问题1:ERROR: pytest-astropy 0.8.0 requires pytest-cov>=2.0, which is not installed.

解决方法:pip install pytest-astropy

问题2:You are using pip version 20.3.4, however version 22.2.2 is available. You should consider upgrading via the ‘pip install --upgrade pip’ command.

解决方法:pip install --upgrade pip

问题3: protobuf requires Python ‘>=3.7’ but the running Python is 2.7.13

解决方法:(在官网上直接下载protobuf 3.6.1) cd protobuf-3.6.1进入到该目录下执行以下命令:(在root用户下)
./autogen.sh
./configure
make
make check
通过which protoc 查看protoc的位置它生成的protoc文件在系统文件目录下 我们的是:/usr/local/bin/protoc
如在conda环境下 则将该protoc文件移至(或复制) /mnt/usr/local/anaconda3/envs/TF1-py2.7/bin/ 目录下
protoc --version(若出现 libprotoc 3.6.1)则下载成功
在这里插入图片描述


下载opencv出错:

ERROR: Could not install packages due to an EnvironmentError: Missing dependencies for SOCKS support.

解决方法: unset all_proxy

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题 在开发/测试一个复杂系统的时候我们经常遇到开发/测试中的模块依赖其它服务的情况。比如一个系统有两个模块A和B,A模块依赖于B模块提供的服务: B部分功能还未完成开发导致A模块开发被阻塞; B模块有些数据不好构造,开发时无法自测到所有情况; 对A模块进行集成测试时,写了一些自动化用例。但由于B模块不可控,B模块的数据经常变动导致返回给A模块的数据也变化了,这时候依赖B模块返回数据的断言将失败; B模块不是自己团队维护,经常出现不稳定,导致开发环境中整个系统不稳定。 解决方案 服务虚拟化指的就是虚拟出不稳定、不可用、未开发完全的服务。通常有两种方法: 针对协议的通用桩,可以预先设置请求对应的返回值以及匹配条件,这样系统未开发完之前可以使用这个桩来代替真实的服务; 录制回放方式,在第三方服务可用的时候将链路上的数据录制下来,当不稳定或者不可用时,回放当时录制的数据。 其中方案1主要针对问题一和二,方案2主要针对问题三和四。Terminator(寓意:明暗交界线)实现了以上两种方式。 Terminator中每个链路可以看成是一个代理,运行在两个服务之间,现在支持四种工作模式: TUNNEL:隧道模式,链路服务负责接收和转发链路上的数据,但不做任何存储,相当于通透状态; RECORD:录制模式,链路服务将链路上的请求和响应存储下来,并记录请求响应的对应关系; REPLAY:回放模式,链路服务不会连接后端的依赖服务,当请求过来时当符合某些条件时直接返回当时录制的响应; STUB:通用桩模式,链路服务能够预设返回结果与匹配规则,当请求过来时符合匹配规则即返回预设结果。 整体架构 网络通信:主要在TCP层建立Socket收发链路上的通信数据,这里采用的是netty框架; 协议编解码器:主要将二进制数据包解析为协议数据或者反过来将协议数据转化为二进制数据,netty本身提供了HTTP、SSL/TLS、WebSockets、Google Protocol Buffer的编解码器,如果需要扩展可以自己定义协议编解码器; 工作模式处理器:本系统的核心,现在提供的录制回放、通用桩都是这里实现的。这里提供了较多的扩展接口,可以基于定制化需求实现新的模式, 比如当后端服务down掉的情况下启动之前的录制数据。另外对于录制回放模式,签名类是一个核心组件,它的作用是如何标识一个请求,对于不同系统可能有不 一样的实现;对于通用桩模式,抽取类是一个核心组件,他的作用是如何提取一个请求,涉及到如何设置匹配条件,对于不同系统(特别是协议)也可能有不一样的 实现。所以这些都是系统提供的可扩展接口。 APIs:为了使用上的方便(比如持续集成),系统基本所有的功能都通过REST API提供。 标签:terminatorx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值