缓解了项目从PIL到枕头的过渡。
pillowfight的Python项目详细描述
枕头是一个替代品,作为一个滴水替代品。不像 皮尔,它是积极维护和易于安装。非常好。有 只有一个问题,那就是用户必须先卸载pil 安装枕头,因为它们共享一个名称空间。
这使得需要在 各种各样的配置,可以很容易地依赖于PIL或枕头 不可避免地打破某些东西(也许是以微妙的方式)。所以很难 安全过渡。
这个包旨在通过提供一个可以 聪明地依赖于毛毛或枕头,基于已经在 系统。如果安装了pil,仍然需要工作的包,但是目标是 过渡到枕头,可以简单地依赖于pillowfight包。
工作原理
此包作为源发行版提供,带有一个简单的安装脚本。 首次安装pillowfight时,其安装脚本将 运行并开始检查系统。
安装脚本将查看是否已经安装了pil。如果是,它会 打印一个警告说,皮尔是不赞成和安装枕头。会的 然后转身依靠皮尔。
如果没有安装PIL,它将依赖于枕头。
使用枕套
只需用setup中的pillowfight替换pil依赖项 install_requires列表:
setup(name='MyPackage',version='1.0',install_requires=['pillowfight'])
为什么写这个
我们使用django和枕头作为产品,系统管理员可以在 网络。有很多配置,还有很多老的 系统已经在使用PIL。
我们一直在努力寻找合适的策略 现有用户枕头不破坏任何安装。我们没有多少 控制他们的系统,所以我们知道我们必须聪明。
很多项目似乎已经将它们的setup.py文件修改为 检查系统上有什么,但实际上,效果不太好。什么时候? 构建python eggs时,requires.txt文件将填充 要么是PIL,要么是Pillow,这根本不起作用。
所以我们写这篇文章是为了有一个稳定的依赖,可以做正确的事情 事情。我们希望其他人会发现它有用。