webdiff 安装失败和不支持中文

webdiff 是一个挺好用的 git 差异对比工具。需要使用:

pip install webdiff

但是很奇怪,公司的电脑能装上,自己家的电脑装不上。报错如下:

    Complete output (1 lines):
    error in webdiff setup command: "values of 'package_data' dict" must be a list of strings (got 'webdiff/static/*')
    ----------------------------------------

又或者是关于 PyGitHub 的报错。

解决办法

下载源码 tar.gz 类型的源码: https://pypi.org/project/webdiff/#files

解压,在根目录找到 setup.py, 将 'PyGithub==1.25.2' 修改成 'PyGithub~=1.25' (因为 PyGithub 这个包,没有 1.25.2 这个版本,所以找不到版本)

然后在当前目录下,右键 Git Bash here ,执行 tar -zcvf test.tar.gz * 重新打包

在此目录下,运行 cmd 命令:pip install test.tar.gz 进行安装,不出意外的话,应该能安装成功。

不支持中文的解决办法

webdiff 进行差异对比,如果文件中包含中文,则会显示乱码或者报错,这是因为它默认打开文件的方式不是:utf-8 ,所以找到你的 webdiff 的安装目录:path_of_python\Lib\site-packages\webdiff ,在 app.py 中查找如下这段话:

        contents = open(abs_path).read()
        return Response(contents, mimetype='text/plain')
    except Exception:
        return error('read-error', 'Unable to read %s' % abs_path)

将上面的第一行,添加一个编码:

        contents = open(abs_path, encoding='utf-8').read()   # 仅仅加了一个 编码 而已
        return Response(contents, mimetype='text/plain')
    except Exception:
        return error('read-error', 'Unable to read %s' % abs_path)
posted @ 2022-04-24 11:25  wztshine  阅读(88)  评论(0编辑  收藏  举报