我编写了一个包装外部二进制文件功能的模块。
例如,我将ls
程序包装到python模块my_wrapper.py
import my_wrapper
print my_wrapper.ls('some_directory/')
# list files in some_directory
并在my_wrapper.py中执行:
# my_wrapper.py
PATH_TO_LS = '/bin/ls'
def ls(path):
proc = subprocess.Popen([PATH_TO_LS, path], ...)
...
return paths
(当然,我不包装ls
,而是包装其他二进制文件)
二进制文件可能安装了任意位置,如/usr/bin/
,/opt/
,甚至可能与python脚本(./binaries/
)
问题:
什么是最干净的(从用户的角度来看)设置二进制路径的方法?
my_wrapper.PATH_TO_LS = ...
或调用某些my_wrapper.set_binary_path(path)
?env
中指定它,而包装器会在os.environ
找到它?鸡蛋示例:
# setup.py
setup(
name='my_wrapper',
requires_binaries=['the_binary'] # <--- require that the binary is already
# installed and on visible
# on execution path
)
或
easy_install my_wrapper BINARY_PATH=/usr/local/bin/the_binary
答案 0 :(得分:0)
使用合理的默认值创建“配置对象”。允许使用者根据需要修改值。接受配置对象实例到您的功能,采用您默认创建的实例。