gpt4 book ai didi

python - PEP-8 : module at top of file

转载 作者:太空狗 更新时间:2023-10-29 21:11:50 24 4
gpt4 key购买 nike

为了改进我的 Python 风格,我在我的一个脚本上运行了 PEP-8 风格检查器,它提示一些我不知道如何修复的东西。脚本的序言是这样的:

#! /bin/env python3

import sys
import os

exe_name = os.path.basename(os.path.realpath(__file__))
bin_dir = os.path.dirname(os.path.realpath(__file__))
inst_dir = os.path.dirname(bin_dir)
sys.path.insert(0, inst_dir+'/path/to/packages')

import mypackage.mymodule

样式检查器在 import mymodule 行上提示说它应该在文件顶部。但是我显然不能在设置找到它的路径之前移动它。有没有一种好的方法可以实现这一点(强制使用环境变量或 shell 包装器并不是我认为比我当前的代码更好的方法)同时遵守 PEP-8 建议?

最佳答案

如果您想避免路径操作,您可以使用鲜为人知的 .pth 功能来实现。

sys.path 应该以包含主程序的目录开头,可以按名称或按引用作为“”。我假设导入 mymodule 的文件不是 mypackage 的一部分,因此 '' 条目对于导入 mymodule 没有用。

sys.path 应该以执行二进制文件的 site-packages 目录结尾。这是添加包的正常位置。如果您不想将 mypackage 移动到 site-packages 中,您可以通过将 mystuff.pth 文件放入它。它应该包含一行:目录包含 mypackage 的路径。将其命名为 myprojects。然后 mypackagemyprojects 中的任何其他包都可以导入,就像它们在 site-packages 中一样。

.pth 文件的一个优点是您可以将相同的副本放在多个站点包目录中。例如,我在 F:/python 中有多个项目。我安装了多个版本的 Python。因此,我将包含这一行的 python.pth 放入每个站点包中。

关于python - PEP-8 : module at top of file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188843/

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