Я создаю пакет ppa deb для модуля python, заменяя пакет pip (который я также создал), и я хотел бы запустить «delete uninstall» как часть установки deb.
] Как я могу запустить «pip uninstall» как часть установки пакета ppa?
Я хочу это сделать, потому что установка pip в / usr / local / lib имеет приоритет над установкой deb в / usr / lib, поэтому пользователи, которые ранее устанавливали с помощью pip, могли непреднамеренно использовать старую версию pip при установке версии deb.
Я уже пробовал две вещи, ни одна из которых не работала, и я не знаю, почему (любые рекомендации по устранению этой проблемы были бы очень благодарны - я пробовал «dpkg --log = log.txt -i», но в журнале не было сообщений об ошибках удаления пупа):
A. выполнить удаление пула в setup.py
from setuptools import setup
from setuptools.command.install import install
import os.path
import subprocess
class CustomInstallCommand(install):
def run(self):
if os.path.exists("/usr/local/lib/python2.7/dist-packages/bamliquidatorbatch"):
print "Old pip bamliquidatorbatch install detected, attempting to remove"
subprocess.call(["pip", "uninstall", "-y", "BamLiquidatorBatch"])
install.run(self)
setup(
...
cmdclass={
'install': CustomInstallCommand,
}
)
Это работало отлично, когда он был установлен с установкой sudo python setup.py, но удаление папок никогда не запускалось, когда пакет был установлен с «dpkg -i».
B. make pip uninstall в правилах makefile
#!/usr/bin/make -f
%:
dh $@ --with python2 --buildsystem=python_distutils
if [ -d "/usr/local/lib/python2.7/dist-packages/bamliquidatorbatch" ]; then pip uninstall -y BamLiquidatorBatch; echo; fi
Когда я запускал аналогичный код в make-файле напрямую, он работал нормально, но снова удаление pipe никогда не запускалось, когда пакет был установлен с «dpkg -i».