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