2016-06-16 2 views
4

Я загрузил, построил и установил образец проекта pypi. Предполагается, что проект будет использоваться, чтобы дать представление о упаковке python и указывается в Python Packaging User Guide и Packaging and Distributing Projects. Поэтому я смущен тому, почему, следуя инструкциям по созданию пакета, у меня возникает ошибка при его удалении.pip удаляет работу, но дает ошибку

Как уже упоминалось выше, я использовал их образец проекта. Если кто-то может пролить свет, это будет оценено по достоинству.

Основные ноты: Я бегу Mac OSX, моя установленная версия питон 3.5.1 Ниже приведены шаги по воспроизведению проблемы:

mkdir testdirectory 
cd testdirectory/ 
pyvenv venv # Creating a virtual environment 
source venv/bin/activate 
git clone https://github.com/pypa/sampleproject.git # Getting sample project 
cd sampleproject/ 
python setup.py build 
python setup.py install # Installing on the virtual environment 

pip list 
peppercorn (0.5) 
pip (7.1.2) 
sample (1.2.0) 
setuptools (18.2) 

pip uninstall sample 

Итоговое следующий вывод:

Uninstalling sample-1.2.0: 
    /Users/steve/testdirectory/venv/bin/sample 
    /Users/steve/testdirectory/venv/lib/python3.5/site-packages/sample-1.2.0-py3.5.egg 
Proceed (y/n)? y 
    Successfully uninstalled sample-1.2.0 
Traceback (most recent call last): 
    File "/Users/steve/testdirectory/venv/bin/pip3", line 11, in <module> 
    sys.exit(main()) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/__init__.py", line 217, in main 
    return command.main(cmd_args) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/basecommand.py", line 248, in main 
    pip_version_check(session) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/utils/outdated.py", line 102, in pip_version_check 
    installed_version = get_installed_version("pip") 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/utils/__init__.py", line 858, in get_installed_version 
    working_set = pkg_resources.WorkingSet() 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 629, in __init__ 
    self.add_entry(entry) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 685, in add_entry 
    for dist in find_distributions(entry, True): 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2075, in find_eggs_in_zip 
    if metadata.has_metadata('PKG-INFO'): 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1605, in has_metadata 
    return self.egg_info and self._has(self._fn(self.egg_info, name)) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1963, in _has 
    return zip_path in self.zipinfo or zip_path in self._index() 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1843, in zipinfo 
    return self._zip_manifests.load(self.loader.archive) 
    File "/Users/steve/testdirectory/venv/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1783, in load 
    mtime = os.stat(path).st_mtime 
FileNotFoundError: [Errno 2] No such file or directory: '/Users/steve/testdirectory/venv/lib/python3.5/site-packages/sample-1.2.0-py3.5.egg' 

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

ответ

6

Это подтверждается:

$ pip help uninstall 

Usage: 
    pip uninstall [options] <package> ... 
    pip uninstall [options] -r <requirements file> ... 

Description: 
    Uninstall packages. 

    pip is able to uninstall most installed packages. Known exceptions are: 

    - Pure distutils packages installed with ``python setup.py install``, which 
    leave behind no metadata to determine what files were installed. 
    - Script wrappers installed by ``python setup.py develop``. 

т.е. вы получаете сообщение об ошибке, потому что вы не использовали pip себя установить - вы использовали setup.py и так пип не знает, что было установлено.

0

Установите пакет не с python setup.py install но с pip install .

Тогда деинсталлировать будет работать без ошибок

Смежные вопросы