python-pdfkit
python-pdfkit copied to clipboard
Hidden dependency on which program
There seems to be a hidden dependency on the which
program.
https://github.com/JazzCore/python-pdfkit/blob/fb86d338a3706e6e0ede09170b9fa58fb740ec1e/pdfkit/configuration.py#L29
The way the binary gets discovered is unnecessarily complicated. Instead of starting an external binary (a whole new process), I recommend that the script simply checks the $PATH env variable. The syntax for it is very simple.
Sample solution:
for directory in os.environ.get('PATH', '').split(os.pathsep):
potential_path = os.path.join(directory, 'wkhtmltopdf') # perhaps .exe on windows?
if os.path.isfile(potential_path) and os.access(potential_path, os.X_OK):
return potential_path
It is even easier with recent Python versions by relying on the stdlib shutil.which
.
Is that the same as ?
`root@ubuntu-s-2vcpu-4gb-amd-sfo3-01:~# which which
/usr/bin/which`
I always laugh when I do that because it reminds me of the Wizard of Oz.
"Wicked Witch of the East - Wikipedia
The Wicked Witch of the East The Wicked Witch of the East was featured in the film The Wizard of Oz (1939), in which she is the sister of the Wicked Witch of the West. As in the book, she is killed when Dorothy's house falls on her."
It should be mostly identical to the known which
tool, but implemented in pure Python: https://github.com/python/cpython/blob/1c72265a31eaf8724a5dd16391b951366460b64e/Lib/shutil.py#L1525-L1605