Установка с помощью pip breaks на python setup.py egg_info - PullRequest
2 голосов
/ 29 августа 2011

Я пытаюсь установить свою собственную программу через Pip и PyPI с помощью обычной команды pip install tvrenamr, однако я получаю сообщение об ошибке ниже:

Downloading/unpacking tvrenamr
  Running setup.py egg_info for package tvrenamr
    Usage: tvr [options] <file/folder>

    -c: error: no such option: --egg-base
    Complete output from command python setup.py egg_info:
    Usage: tvr [options] <file/folder>



-c: error: no such option: --egg-base

----------------------------------------
Command python setup.py egg_info failed with error code 2
Storing complete log in /Users/george/.pip/pip.log

Прошло много времени с тех пор, как я проверил, но я имел обыкновение устанавливать pip-код с моими предыдущими версиями, которые я установил на PyPI, однако я обновился до последней версии Pip - не уверен, что это приведет к поломке или нет!

Так, когда pip работает python setup.py egg_info, кажется, что TvRenamr вызывается, или, по крайней мере, мой класс анализатора опций был импортирован.

Мой setup.py:

from os.path import dirname, join
from setuptools import setup, find_packages

from tvrenamr import get_version

def fread(fname):
    return open(join(dirname(__file__), fname)).read()

setup(
    name = 'tvrenamr',
    version = get_version(),
    description = 'Rename tv show files using online databases',
    long_description = fread('README.markdown'),
    author = 'George Hickman',
    author_email = 'george@ghickman.co.uk',
    url = 'http://github.com/ghickman/tvrenamr',
    license = 'MIT',
    packages = find_packages(exclude=['tests']),
    entry_points = {'console_scripts': ['tvr = tvrenamr.tvrenamr:run',],},
    classifiers = [
        'Environment :: Console',
        'Intended Audience :: End Users/Desktop',
        'License :: OSI Approved :: MIT License',
        'Operating System :: MacOS',
        'Operating System :: Microsoft :: Windows',
        'Operating System :: POSIX :: Linux',
        'Programming Language :: Python :: 2.6',
        'Topic :: Multimedia',
        'Topic :: Utilities',
        'Natural Language :: English'],
    install_requires = ('lxml', 'pyyaml',)
)

tvrenamr/__init__.py:

__version__ = (3, 0, 0)

def get_version():
    return '.'.join(map(str, __version__))

Мои единственные мысли о том, как теперь он получает опции твренамра, таковы, что либо опция find_packages, либо опция entry_points каким-то образом импортирует tvrenamr.py и, таким образом, options.py ??

Все версии TvRenamr были загружены в PyPI с python setup.py sdist upload.

Я действительно озадачен этой проблемой - любая помощь очень ценится!

РЕДАКТИРОВАТЬ: я могу запустить python setup.py egg_info без ошибок.

1 Ответ

1 голос
/ 17 сентября 2011

К сожалению, это был случай, когда инструменты установки скрывали ошибку в файле setup.py, вызванную неверной строкой версии в tvrenamr/__init__.py.

Я уловил ошибку после установки вручную с помощью python setup.py install в чистую virtualenv, так что что-то в моей среде должно было повлиять и на вещи раньше.

...