我想在package_data下包含某些用户定义的文件,例如cfg.ini,还具有写权限。但默认情况下,写入权限被禁用,因为我使用sudo安装了我的包。
sudo python setup.install
顺便说一下,我使用setuptools来创建我的setup.py
请提出任何建议。
答案 0 :(得分:0)
有两个解决方案。
只需使用(不使用sudo)即可将软件包安装到本地用户(而不是系统):
python setup.py install
这将允许用户能够编辑自定义文件。
作为在* package_data *下使用用户定义文件的替代方法,您可以简单地在用户特定目录中生成用户特定文件,这些文件由模块读取。然后由用户编辑。在Windows上,这将存储在用户的AppData
目录下。
appdirs包提供了对用于存储应用程序数据的用户目录的轻松访问(它是MIT许可的)。
从PyPi安装 appdirs :
sudo pip install appdirs
或者您可以下载源代码,然后使用以下命令安装:
sudo python setup.py install
以下是一个例子:
>>> import appdirs
>>> user_dir = appdirs.user_data_dir("YourAppOrModule", "YourName")
>>> print(user_dir)
C:\Users\TheUser\AppData\Local\YourName\YourAppOrModule
然后您可以在user_dir
下生成用户文件,并允许用户从那里编辑它们。