python-具有可执行权限的package_data文件

我正在使用distutils创建Python(2)软件包安装程序.在我的程序包中有几个二进制可执行文件,这些二进制可执行文件是从我的Python代码调用的.我将这些作为package_data列出在我的setup.py文件中,以便它们与软件包一起安装.但是,在安装这些文件时,distutils不会在这些文件上复制可执行权限位.有没有办法强迫distutils安装具有可执行权限的package_data文件?

解决方法:

根据其他一些SO答案弄清楚了它-以下工作原理:

class my_install_lib(distutils.command.install_lib.install_lib):
  def run(self):
    distutils.command.install_lib.install_lib.run(self)
    for fn in self.get_outputs():
      if <this is one of the binaries I want to be executable>:
        # copied from distutils source - make the binaries executable
        mode = ((os.stat(fn).st_mode) | 0555) & 07777
        distutils.log.info("changing mode of %s to %o", fn, mode)
        os.chmod(fn, mode)

然后将cmdclass = {‘install_lib’:my_install_lib}传递给安装程序.

上一篇:我如何覆盖PBR中的要求?


下一篇:在Python程序包中需要BeautifulSoup-setup.py需要什么?