繁体   English   中英

如何在python setup.py中chmod文件?

[英]How to chmod files within a python setup.py?

我创建了一个带有setup.py的python包安装,我希望它能够复制文件夹(为场合创建)〜/ .did中的数据文件。 问题是我必须使用sudo权限调用setup.py,因为它在/ usr / local /中写入...所以当我的数据文件被复制到〜/ .did时,只有root用户具有对文件的写访问权限。

我决定在setup()函数之后添加对os.chmod()的调用,但是我想知道是否有人有更干净的方法。

这是我的setup.py文件:

#!/usr/bin/env python

from distutils.core import setup
import os

home=os.path.expanduser('~')

setup(name='did',
      version='1.0',
      description='Daily Image Downloader',
      author='Luc Mazon',
      author_email='my@mail.com',
      url='',
      license='GNU GPL v3',
      scripts=['did'],
      packages=['didlib'],
      data_files=[
                  ('/usr/share/man/man1', ['doc/did.1.gz']),
                  (home+'/.did', ['did.xml'])
                 ]
     )

os.chmod(home+'/.did/did.xml', 0666)

由于did.xml不是python文件,我还创建了一个MANIFEST.in文件,其中包含以下行:

include did.xml

我的包的全局结构如下:

did-1.0
 | didlib
 |  | __init__.py
 |  | variouspyfiles.py
 | doc
 |  |-did.1.gz
 | MANIFEST.in
 | did.xml
 | did
 | setup.py

我认为最好不要在安装程序的主目录中写入任何配置文件,这样会更好,也更为习惯。 其他用户怎么样? 更好的方法是在初始化时检查代码,如果运行它的用户存在该文件,如果不存在,则仅添加新文件。

对我来说,你正在寻找chown(更改所有者)或chgrp(更改组)。

此外,我不明白你为什么要制作sudo,你只需要正确访问这些文件。 所以只需添加chmod -R gou+rx setup_dir即可浏览安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM