Skip to main content
 首页 » 编程设计

python之在 python setup.py egg_info 上使用 pip 中断安装

2025年05月04日12小虾米

我正在尝试使用常用命令通过 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 

自从我检查以来已经有一段时间了,但我曾经能够使用我放在 PyPI 上的以前版本来 pip 安装我的代码,但是我更新到最新的 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__)) 

关于它如何获得 tvrenamr 的选项,我现在唯一的想法是 find_packages 或 entry_points 选项以某种方式导入 tvrenamr.py因此 options.py??

所有版本的 TvRenamr 都通过 python setup.py sdist upload 上传到 PyPI。

我真的被这个问题难住了 - 非常感谢任何帮助!

编辑:我可以毫无错误地运行 python setup.py egg_info。

请您参考如下方法:

不幸的是,这是一个设置工具掩盖了 setup.py 中错误的情况,该错误是由 tvrenamr/__init__.py 中的错误版本字符串引起的。

我在使用 python setup.py install 手动安装到一个干净的 virtualenv 后发现了这个错误,所以我的环境中的某些东西之前也一定已经影响了事情。