使用pip安装时在python setup.py egg_info上中断
我正在尝试通过 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 运行 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
,没有错误。
1 个回答
0
不幸的是,这个问题是因为安装工具隐藏了在 tvrenamr/__init__.py
文件中一个错误的版本字符串导致的错误,这个错误出现在 setup.py 文件里。
我是在一个干净的虚拟环境中手动安装时发现了这个错误,使用的命令是 python setup.py install
,所以之前我的环境中可能有什么东西影响了安装过程。