PLOT-maxforce.py Error

Dear Exciting Community,

I have recently installed this code in my university cluster through the help of system admin. And I was facing a problem[1] while following a official tutorial[2]. I am pasting below my system admin’s reply where he expresses some questions[3] when I asked him about this issue, can somebody please provide guidance.

[1]
login-1-929 diamond-relax >: PLOT-maxforce.py rundir-00/
Traceback (most recent call last):
File “/opt/site/apps/exciting/mpi/20210707/exciting/tools/PLOT-maxforce.py”, line 8, in
from pylab import *
ImportError: No module named pylab
login-1-930 diamond-relax >:

[2]
http://exciting.wikidot.com/oxygen-simple-examples-of-structure-optimization

[3]
This is happening because python script PLOT-maxforce.pynhas the following as the interpreter:

#!/usr/bin/python

This should be:

#!/usr/bin/env python

What is happening here is that no matter what python you have in your environment, this script will use /usr/bin/python which is and old version of python used by the operating system, We do not make any changes to this python since thins in the operating system can break. Looking through the python scripts in the directory:

/opt/site/apps/exciting/mpi/20210707/exciting/tools

To add to this confusion this directory contain 73 scripts that use !#/usr/bin/python and 23 scripts that correctly use !#/usr/bin/env python. At this point I have to ask how important is this software to your work. The likely outcome is you will spend a lot of time testing and finding errors. These will need to be reported to the developers to get fixed.

Hi Jatin,

  1. That means you need to pip install pylab. You’re responsible for managing your python env. If you have conda installed, you don’t need admin rights to manage it.

  2. Yes, the scripts are inconsistent in their style. This is gradually being rectified with tools/exciting_tools, which will be ready for the next release. Indeed, I want to completely remove the bash and python2 scripts.

In the first instance, I recommend you delete the shebang and run explicitly with python2 script.py or python3 script.py, depending on the script. Else, I would write your own.

Cheers,
Alex