0
我編寫了一個包裝外部二進制文件功能的模塊。爲包裝模塊指定二進制文件路徑的最佳方法
例如,我包裹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/
甚至一個t是同一個地方的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
在哪個級別?函數執行,例如'params = LSParameters(...); my_wrapper(PARAMS)'? –
是的。但大概你會有不止一個配置選項。 –