-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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: