编程语言
首页 > 编程语言> > 如何在python setup.py中使用chmod文件?

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

作者:互联网

我用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

解决方法:

我认为最好不要将任何配置文件都写入安装程序的主目录.那其他用户呢?最好是在初始化时检查您的代码是否存在,供运行它的用户使用,如果不存在则仅添加一个新文件.

标签:security,chmod,linux,python,setup-py
来源: https://codeday.me/bug/20191105/1996033.html