如何删除安装了distutils的程序?

xRo*_*bot 6 python ubuntu distutils python-3.x

我用这个setup.py安装了一个python应用程序:

#!/usr/bin/env python

from distutils.core import setup
from libyouandme import APP_NAME, APP_DESCRIPTION, APP_VERSION, APP_AUTHORS, APP_HOMEPAGE, APP_LICENSE

setup(
    name=APP_NAME.replace(" ","-").lower(),
    version=APP_VERSION,
    description=APP_DESCRIPTION,
    author="John G",
    author_email="xxx@gmail.com",
    url=APP_HOMEPAGE,
    license=APP_LICENSE,
    scripts=["youandme.py"],
    packages=["libyouandme"],
    data_files=[
        ('share/applications', ['youandme.desktop']),
        ('usr/share/icons/hicolor/16x16/apps', ['icons/hicolor/16x16/apps/you.png']),
        ('usr/share/icons/hicolor/22x22/apps', ['icons/hicolor/22x22/apps/you.png']),
        ('usr/share/icons/hicolor/48x48/apps', ['icons/hicolor/48x48/apps/you.png'])],
)
Run Code Online (Sandbox Code Playgroud)

如何从我的ubuntu机器中删除此应用程序?

我能用distutils做到这一点吗?

unu*_*tbu 6

安装checkinstall Ubuntu软件包.checkinstall监视安装过程并创建deb包.这使您可以使用常规程序包管理命令来删除该软件.

首先,使用checkinstall重新安装候选python模块/包.将目录更改为包含候选python模块/包的setup.py文件的目录:

cd <PACKAGE_NAME>
Run Code Online (Sandbox Code Playgroud)

然后:

sudo checkinstall -D --fstrans=no python setup.py install
Run Code Online (Sandbox Code Playgroud)

这将创建一个.deb包,并再次安装python模块.你会被问到几个问题.默认答案应该没问题.(但是当setup.py文件位于python模块的子目录中时,您可能会更改.deb包的"名称",例如"source"子目录.)

(保存的.deb包现在捕获python包自身的安装方式,dpkg可以删除python包.)

然后立即删除模块:

sudo dpkg -r <PACKAGE_NAME>
Run Code Online (Sandbox Code Playgroud)

PS.我听说有些安装程序不兼容checkinstall,但我自己从未遇到过任何问题.