Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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
like image 987
O.rka Avatar asked Jan 02 '23 22:01

O.rka


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.

like image 83
Sraw Avatar answered Jan 04 '23 12:01

Sraw