How to use path of current conda environment's python as shebang for a script?

Viewed 2097

Let's say you have 2 conda environments: py3_env and py3_clone_env

If you have a script.py with the following structure:

#![shebang]
import sys
def main():
    print("hello world", file=sys.stdout)
if __name__ == "__main__":
    main()

Is it possible to have the shebang be a variable that is determined from the current conda environment?

For example:

From py3_env environment:

#!~/anaconda/envs/py3_env/bin/python

and from py3_clone_env environment:

#!~/anaconda/envs/py3_clone_env/bin/python
1 Answers

I guess what you need is #!/usr/bin/env python:

#!/usr/bin/env python
import sys
print(sys.executable)

In this case, python is the python based on current PATH environment variables. So it is your current virtualenv's python.

Related