默认情况下,对package_data文件没有写权限

时间:2014-02-09 03:18:39

标签: python setuptools setup.py pypi

我想在package_data下包含某些用户定义的文件,例如cfg.ini,还具有写权限。但默认情况下,写入权限被禁用,因为我使用sudo安装了我的包。

sudo python setup.install

顺便说一下,我使用setuptools来创建我的setup.py

请提出任何建议。

1 个答案:

答案 0 :(得分:0)

有两个解决方案。

  1. 只需使用(不使用sudo)即可将软件包安装到本地用户(而不是系统):

    python setup.py install
    

    这将允许用户能够编辑自定义文件。

  2. 作为在* 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下生成用户文件,并允许用户从那里编辑它们。

相关问题