我使用setup.py创建了一个Python包安装程序,我希望它能够复制一个数据文件到专门为此创建的文件夹~/.did中。问题是,由于它要写入/usr/local/...,所以我必须使用sudo权限调用setup.py。因此,当我的数据文件被复制到~/.did中时,只有root用户可以对该文件进行写入访问。
因此,我决定在setup()函数之后添加一个os.chmod()函数调用,但我想知道是否有更简洁的方法来实现这一点。
以下是我的setup.py文件:
我的软件包的全局结构如下所示:
因此,我决定在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
/usr/share
或类似的位置。 - Ignacio Vazquez-Abrams