如何在Python3.5、3.6、3.7上安装monkeypatch pathlib以获得与Python3.8相同的功能?

2024-10-03 06:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在软件中使用pathlib进行库开发- 但不幸的是,我的TravisMatrix停止了,因为在一些较旧的python版本(3.5-3.7)上 pathlib.Path与最新的3.8版本不兼容

例如,以下内容适用于python 3.8,但不适用于3.6、3.7等:

>>> path_test_file = pathlib.Path('./tests/mytest.txt')
>>> path_test_file.unlink(missing_ok=True)

通过Requirements.txt、pip等是否有一种方便的方式升级pathlib库

我还试图用猴子修补旧版本的pathlib,但失败得很惨

正如@jakub所指出的,当然也有解决方案,比如:

if path_test_file.exits(): 
    path_test_file.unlink()

# or:
try:
    path_test_file.unlink()
except Exception:
    pass

这是真的很清楚,不需要一个答案-但我不想混乱我的代码那样。 如果需要的话,我更愿意包含一些模块和monkey补丁pathlib.Path,并保持所有其他代码不变,并且仍然与较旧的python版本兼容

也许我应该跳起来https://github.com/KenKundert/extended_pathlib/blob/master/extended_pathlib.py


Tags: path代码test版本txtextended软件tests
1条回答
网友
1楼 · 发布于 2024-10-03 06:18:42

我刚刚将python3.8pathlib文件复制到一个新的包中,并调整了几行代码,使其行为类似于pathlib

现在,您也可以在3.6、3.7中使用所有Python 3.8 pathlib

你可以在githubpypi上找到它


免责声明:我是pathlib3x库的作者。

相关问题 更多 >