Python distutils - 使用.so C扩展覆盖旧py实现

时间:2013-06-30 07:58:29

标签: python cython distutils cpython

我的库中包的初稿是一个foo.py文件,我现在已经用Cython / C扩展名取代了foo.so - 然而,distutils并没有自动地意识到旧的.py文件已经消失,因此安装后都会位于site-packages目录中(谁知道在使用import时加载了哪个..)

显然我可以自己手动删除旧文件,但我不希望我的图书馆用户不得不关心这类事情。

什么是规范/ distutils / pythonic方式来处理这个问题?有没有像

这样的语法
from distutils import setup
setup(..., depricated=['path/to/foo.py'])

指示在升级时从安装目录中删除过时的.py文件?

1 个答案:

答案 0 :(得分:0)

distutils中没有uninstall命令。虽然pip可以在安装新版本之前自动删除旧版本。其他安装程序也可以提供uninstall命令。

如果用户从源代码安装,请指示您的用户使用pip。大多数二进制格式(如rpm,deb,msi)默认支持卸载。顺便说一下,fpm提供了一种简单的方法来转换python包。

您可以使用python -v查看为您的模块加载的文件。 .so可能具有更高的优先级,但在这种情况下您不应该依赖它,而是删除旧版本。