-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
macOS listener support on apps where sys.executable
is not a python interpreter
#33
Comments
sys.executable
is not a python interpretersys.executable
is not a python interpreter
Perhaps the macOS listener should |
Putting this here in case someone else considers it: we could use the built-in python at |
For |
Sorry but this command is used in the command line of pyinstaller or write in the python script that pyinstaller is going to pack? |
A tool build via piainstaller suports |
Thanks, I'll try this. |
It's presently on pypi as darkdetect-angr. Once this PR is merged in though the fork will likely go away in lieu of the original. |
Thanks for your work. For me another option is to use Also I found that darkdetect fails to behave under sudo mode. See issue #37 . |
Right now the macOS listener invokes a subprocess with args
(sys.executable, "-c", cmd)
; this assumes thatsys.executable
is a python interpreter or at least exposes-c
. That is not necessarily the case when running from something like a pyinstaller build, which bundles the interpreter and other files into a binary executable which does not expose-c
.This is undocumented, though that is fixed by: #32
Right now the listener will silently fail; it would be nice to change this. One possible solution is to check that
Path(sys.executable).name.startsWith("python")
and fail with an exception; though then python interpreter hardlinks to different names might not work; this is why the problem is non-trivial. There would need to be some way to determine ifsys.executable
is a python interpreter to fail more loudly; or we could maybe wait on the subprocess for a few moments to see if it dies immediately? How exactly would need to be decided.EDIT:
A hacky fix for pyinstaller specifically is to prefix
cmd
withfrom multiprocessing.resource_tracker import main;
; as pyinstaller supports-c
for any command prefixed by that string.The text was updated successfully, but these errors were encountered: