为了改善我的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
Run Code Online (Sandbox Code Playgroud)
并且样式检查器在线上抱怨import mymodule,声明它应该是文件的顶部.但在设置找到它的路径之前,我显然无法移动它.有没有一种很好的方法来实现这一点(强制要求环境变量或shell包装器不是我认为比现有代码更好的)同时尊重PEP-8建议?
最好的策略是将sys.path相关代码放在单独的文件中并将其导入到工作代码文件中。
因此,我将上面的代码分成两个文件。一个被命名my_module.py,另一个被命名working_module.py
现在my_module将包含以下行
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')
Run Code Online (Sandbox Code Playgroud)
并将working_module包含
import my_module
import mypackage.mymodule
Run Code Online (Sandbox Code Playgroud)
因为我们是my_module在之前导入的mypackage,所以它会执行之前与路径相关的代码,并且您的包将在路径中可用。
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |