我们从Python开源项目中,提取了以下23个代码示例,用于说明如何使用distutils.util.change_root()。
def change_roots (self, *names): for name in names: attr = "install_" + name setattr(self, attr, change_root(self.root, getattr(self, attr)))
def run(self): self.mkpath(self.install_dir) for f in self.data_files: if isinstance(f, str): # it's a simple file, so copy it f = convert_path(f) if self.warn_dir: self.warn("setup script did not provide a directory for " "'%s' -- installing right in '%s'" % (f, self.install_dir)) (out, _) = self.copy_file(f, self.install_dir) self.outfiles.append(out) else: # it's a tuple with path to install to and a list of files dir = convert_path(f[0]) if not os.path.isabs(dir): dir = os.path.join(self.install_dir, dir) elif self.root: dir = change_root(self.root, dir) self.mkpath(dir) if f[1] == []: # If there are no files listed, the user must be # trying to create an empty directory, so add the # directory to the list of output files. self.outfiles.append(dir) else: # Copy files, adding them to the list of output files. for data in f[1]: data = convert_path(data) (out, _) = self.copy_file(data, dir) self.outfiles.append(out)
def change_roots(self, *names): """Change the install directories pointed by name using root.""" for name in names: attr = "install_" + name setattr(self, attr, change_root(self.root, getattr(self, attr)))
def run(self): if not self.skip_build: self.run_command("build_scripts") for script in self.distribution.scripts: if isinstance(script, str): fn = os.path.join(self.build_dir, os.path.basename(convert_path(script))) out, _ = self.copy_file(fn, self.install_dir) self.outfiles.append(out) else: dn = convert_path(script[0]) if not os.path.isabs(dn): dn = os.path.join(self.install_dir, dn) elif self.root: dn = change_root(self.root, dn) self.mkpath(dn) if not script[1]: self.outfiles.append(dn) else: for s in script[1]: fn = os.path.join(self.build_dir, os.path.basename(convert_path(s))) out, _ = self.copy_file(fn, dn) self.outfiles.append(out) if os.name == "posix": for fn in self.get_outputs(): mode = S_IMODE(os.stat(fn).st_mode) | 0555 log.info("changing mode of %s to %o", fn, mode) if not self.dry_run: os.chmod(fn, mode)
def run(self): self.mkpath(self.install_dir) for f in self.data_files: dir, files = f dir = util.convert_path(dir) if not os.path.isabs(dir): dir = os.path.join(self.install_dir, dir) elif self.root: dir = change_root(self.root, dir) self.mkpath(dir) if not files: self.outfiles.append(dir) else: for file in files: if isinstance(file, six.string_types): infile = file outfile = os.path.join(dir, os.path.basename(file)) else: infile, outfile = file infile = util.convert_path(infile) outfile = util.convert_path(outfile) if os.path.sep not in outfile: outfile = os.path.join(dir, outfile) self.copy_file(infile, outfile) self.outfiles.append(outfile)
def run(self): """At the end of the install function, we need to rename some files because distutils provides no way to rename files as they are placed in their install locations. """ _install.run(self) for o_src, o_dest in hardlink_modules: for e in [".py", ".pyc"]: src = util.change_root(self.root_dir, o_src + e) dest = util.change_root( self.root_dir, o_dest + e) if ostype == "posix": if os.path.exists(dest) and \ os.stat(src)[stat.ST_INO] != \ os.stat(dest)[stat.ST_INO]: os.remove(dest) file_util.copy_file(src, dest, link="hard", update=1) else: file_util.copy_file(src, dest, update=1) # XXX Uncomment it when we need to deliver python 3.4 version # of modules. # Don't install the scripts for python 3.4. if py_version == '3.4': return for d, files in six.iteritems(scripts[osname]): for (srcname, dstname) in files: dst_dir = util.change_root(self.root_dir, d) dst_path = util.change_root(self.root_dir, os.path.join(d, dstname)) dir_util.mkpath(dst_dir, verbose=True) file_util.copy_file(srcname, dst_path, update=True) # make scripts executable os.chmod(dst_path, os.stat(dst_path).st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) for target, o_dest in symlink_modules: dest = util.change_root(self.root_dir, o_dest) dir_util.mkpath(os.path.dirname(dest), verbose=True) try: os.unlink(dest) except Exception: pass os.symlink(target, dest)