本文整理汇总了Python中setuptools.package_index.PackageIndex.scan_egg_links方法的典型用法代码示例。如果您正苦于以下问题:Python PackageIndex.scan_egg_links方法的具体用法?Python PackageIndex.scan_egg_links怎么用?Python PackageIndex.scan_egg_links使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类setuptools.package_index.PackageIndex
的用法示例。
在下文中一共展示了PackageIndex.scan_egg_links方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: runit
# 需要导入模块: from setuptools.package_index import PackageIndex [as 别名]
# 或者: from setuptools.package_index.PackageIndex import scan_egg_links [as 别名]
def runit():
# process command-line options
bool_opts = map(translate_longopt, stdeb_cmd_bool_opts)
bool_opts.append("process-dependencies")
parser = FancyGetopt(stdeb_cmdline_opts + [("help", "h", "show detailed help message")] + EXTRA_OPTS)
optobj = OptObj()
args = parser.getopt(object=optobj)
idx = PackageIndex()
for option in optobj.__dict__:
value = getattr(optobj, option)
is_string = type(value) == str
if option in bool_opts and is_string:
setattr(optobj, option, strtobool(value))
if hasattr(optobj, "help"):
print USAGE
parser.set_option_table(stdeb_cmdline_opts + EXTRA_OPTS)
parser.print_help("Options:")
return 0
if len(args) != 1:
log.error("not given single argument (distfile), args=%r", args)
print USAGE
return 1
sdist_file = args[0]
package = None
final_dist_dir = optobj.__dict__.get("dist_dir", "deb_dist")
tmp_dist_dir = os.path.join(final_dist_dir, "tmp_py2dsc")
if os.path.exists(tmp_dist_dir):
shutil.rmtree(tmp_dist_dir)
os.makedirs(tmp_dist_dir)
if not os.path.isfile(sdist_file):
for ext in EXTENSIONS:
if sdist_file.endswith(ext):
raise IOError, "File not found"
package = Requirement.parse(sdist_file)
log.info("Package %s not found, trying PyPI..." % sdist_file)
dist = idx.fetch_distribution(package, final_dist_dir, force_scan=True, source=True)
if hasattr(dist, "location"):
sdist_file = dist.location
else:
raise Exception, "Distribution not found on PyPi"
log.info("Got %s", sdist_file)
dist = list(distros_for_filename(sdist_file))[0]
idx.scan_egg_links(dist.location)
package = idx.obtain(Requirement.parse(dist.project_name))
if hasattr(optobj, "process_dependencies"):
if bool(int(getattr(optobj, "process_dependencies"))):
backup_argv = sys.argv[:]
oldargv = sys.argv[:]
oldargv.pop(-1)
if package.requires():
log.info("Processing package dependencies for %s", package)
for req in package.requires():
# print >> sys.stderr
new_argv = oldargv + ["%s" % req]
log.info("Bulding dependency package %s", req)
log.info(" running '%s'", " ".join(new_argv))
sys.argv = new_argv
runit()
# print >> sys.stderr
if package.requires():
log.info("Completed building dependencies " "for %s, continuing...", package)
sys.argv = backup_argv
if package is not None and hasattr(optobj, "extra_cfg_file"):
# Allow one to have patch-files setup on config file for example
local_parser = SafeConfigParser()
local_parser.readfp(open(optobj.__dict__.get("extra_cfg_file")))
if local_parser.has_section(package.project_name):
for opt in local_parser.options(package.project_name):
_opt = opt.replace("_", "-")
if parser.has_option(_opt) or parser.has_option(_opt + "="):
setattr(optobj, opt, local_parser.get(package.project_name, opt))
patch_file = optobj.__dict__.get("patch_file", None)
patch_level = int(optobj.__dict__.get("patch_level", 0))
patch_posix = int(optobj.__dict__.get("patch_posix", 0))
expand_dir = os.path.join(tmp_dist_dir, "stdeb_tmp")
if os.path.exists(expand_dir):
shutil.rmtree(expand_dir)
if not os.path.exists(tmp_dist_dir):
os.mkdir(tmp_dist_dir)
os.mkdir(expand_dir)
expand_sdist_file(os.path.abspath(sdist_file), cwd=expand_dir)
# now the sdist package is expanded in expand_dir
expanded_root_files = os.listdir(expand_dir)
assert len(expanded_root_files) == 1
repackaged_dirname = expanded_root_files[0]
fullpath_repackaged_dirname = os.path.join(tmp_dist_dir, repackaged_dirname)
#.........这里部分代码省略.........