4

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
O.rka
  • 27,095
  • 60
  • 170
  • 279

1 Answers1

9

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.

Sraw
  • 17,016
  • 6
  • 45
  • 76