"pip uninstall" не удаляет пакет полностью и выдает предупреждение об устаревании

Я сделал пакет Python, используя этот файл setup.py:

from distutils.core import setup

setup(
    name='pizzamaker',
    version='0.0.1',
    packages=['pizzamaker'],
    author = 'My name',
    author_email = 'email@example.com',
    keywords = ["pizza"],
    description = "Library to make pizzas",
    classifiers = [
        "Intended Audience :: Developers",
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ]  
)

Затем я создал архив с помощью команды:

$ python setup.py sdist --formats=gztar

Я получил архив pizzamaker-0.0.1.tar.gz, который я могу установить с помощью

$ tar zxvf pizzamaker-0.0.1.tar.gz
$ cd pizzamaker-0.0.1
$ python setup.py install --user 

или же

# python setup.py install 

если я пользователь root.

Библиотека установлена ​​и работает как положено в обоих случаях. Однако пытается удалить его с.

# pip3 uninstall pizzamaker

вызывает следующее предупреждающее сообщение:

DEPRECATION: Uninstalling a distutils installed project (pizzamaker) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling pizzamaker-0.0.1:
  /usr/local/lib/python3.5/site-packages/pizzamaker-0.0.1-py3.5.egg-info
Proceed (y/n)?

Если я наберу y для продолжения файл egg удаляется, но остаются следующие файлы:

# find /usr/local/ | grep pizzamaker

/usr/local/lib/python3.5/site-packages/pizzamaker
/usr/local/lib/python3.5/site-packages/pizzamaker/__init__.py
/usr/local/lib/python3.5/site-packages/pizzamaker/__pycache__
/usr/local/lib/python3.5/site-packages/pizzamaker/__pycache__/__init__.cpython-35.pyc

Я на самом деле зарегистрировал такой пакет на pypi с помощью команды:

$ python setup.py sdist --formats=gztar upload

Затем установите его на другой машине, используя:

$ pip3 install pizzamaker

Проблема точно такая же. Библиотека работает, но когда я пытаюсь удалить ее, я получаю предупреждение DEPRECATION, и когда я продолжаю удаление, некоторые файлы из библиотеки остаются и не удаляются из site-packages,

Что я могу сделать, чтобы создать пакет pypi, который люди могут полностью удалить?

ДОПОЛНЕНИЕ

Попытка с помощью setuptools вместо distutils. Я просто заменил линию

from distutils.core import setup

с

from setuptools import setup

и сохраняя все то же самое. Попытка установки пакета в новой системе работает, но удаление не менее проблематично:

# pip3 uninstall pizzamaker
Uninstalling pizzamaker-0.0.1:
    /usr/local/lib/python3.5/site-packages/pizzamaker-0.0.1-py3.5.egg
Proceed (y/n)? y
  Successfully uninstalled pizzamaker-0.0.1
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/site-packages/pip/__init__.py", line 233, in main
    return command.main(cmd_args)
  File "/usr/local/lib/python3.5/site-packages/pip/basecommand.py", line 252, in main
    pip_version_check(session)
  File "/usr/local/lib/python3.5/site-packages/pip/utils/outdated.py", line 102, in pip_version_check
    installed_version = get_installed_version("pip")
  File "/usr/local/lib/python3.5/site-packages/pip/utils/__init__.py", line 838, in get_installed_version
    working_set = pkg_resources.WorkingSet()
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 644, in __init__
    self.add_entry(entry)
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 700, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1949, in find_eggs_in_zip
    if metadata.has_metadata('PKG-INFO'):
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1463, in has_metadata
    return self.egg_info and self._has(self._fn(self.egg_info, name))
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1823, in _has
    return zip_path in self.zipinfo or zip_path in self._index()
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1703, in zipinfo
    return self._zip_manifests.load(self.loader.archive)
  File "/usr/local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1643, in load
    mtime = os.stat(path).st_mtime
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.5/site-packages/pizzamaker-0.0.1-py3.5.egg

0 ответов

Другие вопросы по тегам