with-venv

Homepage: https://github.com/10sr/with-venv-el

Updated:

Summary

Execute with Python virtual environment activated

Commentary

`with-venv' macro executes BODY with Python virtual environment activated:

(with-venv
  (executable-find "python"))

This macro search for suitable venv directory for current evironment:
by default it supports `pipenv`, `poetry`, and directories named
`".venv"` and `"venv"`.
You can modify `with-venv-find-venv-dir-functions' to add or remove
these supports.

The automatic search result will be cached as a buffer-local variable, so
`with-venv' try to find venv dir only at the first time it is used after
visiting file.
To explicitly update this cache (without re-visiting file) after you
created/changed a virtual environment, invoke M-x `with-venv-find-venv-dir'
manually.

You can also set buffer-local vairable `with-venv-venv-dir' explicitly
to specify venv directory for `with-venv' macro.
In this case, the automatic search will be totally disabled for that buffer.


If you want to always enable `with-venv' for certain functions,
`with-venv-advice-add' can be used for that purpose:

(with-venv-advice-add 'blacken-buffer)

Adviced functions are always wrapped with `with-venv' macro when called.

Call `with-venv-advice-remove' to remove these advices.

Dependencies