通过pip卸载的setup.py
根据另一个问题,pip提供了一个卸载包的功能,它的帮助文档也提到了这一点。
我有一个项目,安装后在我的本地site-packages文件夹里的结构是这样的:
projecta/ projecta-1.0-py2.6.egg-info/
使用最新版本时,输入pip uninstall projecta
会问我以下问题:
/path/to/python2.6/site-packages/projecta-1.0-py2.6.egg-info Proceed (y/n)?
如果我回答y
,它会删除.egg-info
目录,但不会删除主projecta
目录,而且也没有提示有什么错误。为什么pip不处理或不知道要删除这个目录呢?
这个项目是通过一个setup.py
文件使用distutils安装的。我可以在这个文件中使用什么特别的设置来帮助pip进行卸载吗?
1 个回答
3
如果我没记错的话,pip
是知道怎么卸载通过 setuptools/distribute
安装的包的,而不是通过原始的 distutils
安装的包。
其实,pip
是基于一些 setuptools
的功能,比如 --record
这个选项,它可以存储包的元数据(这就是 pip
能够卸载与包相关的文件的原因)。
你可以试试这样做:
$ pip install /path/to/projecta
$ pip uninstall projecta