gpt4 book ai didi

python - 安装包时如何处理文件位置和路径?

转载 作者:行者123 更新时间:2023-11-28 18:58:27 35 4
gpt4 key购买 nike

我正在构建我的第一个 Python 包供客户使用。至多,我设想用户从 GitHub 中提取代码,然后进行 pip 安装 (pip install .)。该软件包将在 Windows 环境中使用。放置日志文件的约定是什么或最简单的地方在哪里?有没有办法告诉 setup.py 创建一个用户可以轻松访问的日志目录?

举个更具体的例子,假设我在本地有代码库 C:\Users\iamuser\projects\client_project。我在 client_project 目录中 pip install .。有一个 logs\ 目录 (C:\Users\iamuser\projects\client_project\logs),我希望将日志文件放入其中。有没有办法让我的 setup.py 将日志文件放在该目录中?如果没有,我应该尝试使用其他工具吗?

我试过类似 this 的东西,但在运行安装程序时获取的任何路径都不是原始 setup.py 文件所在的位置(例如:os.path.abspath(__file__) 显示了一些其他位置而不是在client_project 目录)。

最佳答案

在创建 Python 包时,我不会对用户的文件系统或其中的权限做出任何假设(理想情况下甚至不会对操作系统做出任何假设)。如果您的 Python 包创建了日志文件,您可以使用 Python 的内置日志系统,并且日志信息将发送到用户想要的任何地方(默认情况下为 stdout 和 stderr)。

如果您的包生成文件,用户应该可以选择使用设置或配置文件或环境变量来决定它们的去向。

默认情况下,您可以在几个地方安全地存储它们。例如主目录或当前工作目录(或它们的子文件夹,请参阅评论中的优缺点)。重要的是使用与 ~os.getcwd() 或脚本的 __file__ 属性相关的相对路径。 Linux 系统有几个通常存在并且可以使用的地方,例如 /tmp/var/log 但在 Windows 上不起作用。

有时,我将输出文件存储在当前工作目录的父目录中,以免将输出文件 checkin Git 存储库,但这取决于其他假设。

关于python - 安装包时如何处理文件位置和路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55601009/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com