【问题标题】:By default no Write permissions to package_data files默认情况下对 package_data 文件没有写入权限
【发布时间】:2023-03-19 11:16:01
【问题描述】:

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

sudo python setup.install

顺便说一句,我正在使用 setuptools 创建我的 setup.py

请有任何建议。

【问题讨论】:

    标签: python setuptools setup.py pypi


    【解决方案1】:

    有两种解决方案。

    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 下生成用户文件并允许用户从那里编辑它们。

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2017-08-07
      • 2013-04-16
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      相关资源
      最近更新 更多