Python pip卸载上的自定义代码

Python pip卸载上的自定义代码,python,pip,setuptools,setup.py,Python,Pip,Setuptools,Setup.py,我想在运行pip uninstall时运行一些自定义代码,清理安装时创建的文件。我该怎么做 我使用setup.py中的以下命令运行了自定义安装代码: from setuptools import setup from setuptools.command.install import install class CustomInstallCommand(install): def run(self): #Custom code here install.run(self)

我想在运行
pip uninstall
时运行一些自定义代码,清理安装时创建的文件。我该怎么做

我使用setup.py中的以下命令运行了自定义安装代码:

from setuptools import setup
from setuptools.command.install import install

class CustomInstallCommand(install):
  def run(self):
    #Custom code here
    install.run(self)
...
setup(
  ...
  cmdclass = {
    'install':CustomInstallCommand
  }
)

但是尝试类似于setuptools.command.uninstall或setuptools.command.install import uninstall的方法失败,因为这些模块/名称不存在。

正如其他人所说:出于安全原因,即使您现在找到了一种方法,也强烈反对这样做,很可能会在附近的功能中断

这同样适用于安装命令,而不仅仅是卸载命令。所以,请不要走这条路


Python打包(包括pip)正朝着完全delarative的方向发展,无需运行托管包中的任何代码。

卸载是否应该删除所有文件?请更详细地描述您正试图解决的确切问题。当然-我正在下载到一个临时目录以使用它,因为据我所知,它只能通过NodeJS()使用,不能通过pip依赖项使用?@scubbo:通常在
setup.py
中不鼓励这样做,因为它将是脆弱的,依赖于平台,并会导致问题。这主要是因为没有Python方法来表示本机依赖项。相反,只需在自述文件中记录本机依赖项安装说明。然而,Distutils工作组正在做这件事:否则你们会像这样结束恐怖:明白了。因此,如果我理解正确,没有批准/推荐的方法为具有非pip依赖项的python模块提供“单一命令安装”(例如,如果我想为非开发人员观众提供模块)?那太令人失望了。谢谢你的链接,我会感兴趣地关注讨论。