ImportError: No module named 'distutils.version'?

1、我使用mitmproxy中的 mitmdump 进行抓取数据时,报了个错误,一直查找解决分案,报错信息如下

C:\Windows\System32>mitmdump -s E:\Python开发\DataTest\酷狗\KGRequestProvider.py
Loading script: E:\Python开发\DataTest\酷狗\KGRequestProvider.py
Script error: Traceback (most recent call last):
  File "E:\Python开发\DataTest\酷狗\KGRequestProvider.py", line 10, in <module>
    import redis
  File "C:\Users\youziku\AppData\Roaming\Python\Python36\site-packages\redis\__init__.py", line 1, in <module>
    from redis.client import Redis, StrictRedis
  File "C:\Users\youziku\AppData\Roaming\Python\Python36\site-packages\redis\client.py", line 12, in <module>
    from redis.connection import (ConnectionPool, UnixDomainSocketConnection,
  File "C:\Users\youziku\AppData\Roaming\Python\Python36\site-packages\redis\connection.py", line 2, in <module>
    from distutils.version import StrictVersion
ImportError: No module named 'distutils.version'

2、这个是我引用的模块,并且我发现我是可以引入 from distutils.version import StrictVersion 包

import sys
sys.path.append('C:\\Users\\youziku\\AppData\\Roaming\\Python\\Python36\\site-packages')
import json
import redis

3、Python版本如下

C:\Windows\System32>python -V
Python 3.6.3

4、redis版本如下

C:\Windows\System32>pip show redis
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Name: redis
Version: 3.5.2
Summary: Python client for Redis key-value store
Home-page: https://github.com/andymccurdy/redis-py
Author: Andy McCurdy
Author-email: sedrik@gmail.com
License: MIT
Location: c:\users\youziku\appdata\roaming\python\python36\site-packages
Requires:
Required-by: scrapy-redis

1、到目前我止,我试过升级redis 版本 ,pip版本,但是都不管用。我猜测肯能是redis模块与python 模块的问题。
2、我不使用mitmdump运行python程序时,redis是可以添加数据的
3、已经在网上搜索了相关问题,但是资料很少。

Jason990420
最佳答案

看不出来哪里有问题, 难不成 mitmdump 调用的不是你的 python 3.6.3 ?

mitmdump -s test.py

# test.py
import distutils
print(distutils.__path__)

import redis

检查一下, distutils.__path__ 目录对不对, 底下有没有 version.py ??

3年前 评论
260686180 (楼主) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前
Jason990420 (作者) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前
讨论数量: 1
Jason990420

看不出来哪里有问题, 难不成 mitmdump 调用的不是你的 python 3.6.3 ?

mitmdump -s test.py

# test.py
import distutils
print(distutils.__path__)

import redis

检查一下, distutils.__path__ 目录对不对, 底下有没有 version.py ??

3年前 评论
260686180 (楼主) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前
Jason990420 (作者) 3年前
260686180 (楼主) 3年前
Jason990420 (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!