esmf-org/esmf-profiler

On Hera, must deactivate and re-activate the venv to find the esmf-profiler

Opened this issue · 2 comments

Describe the bug
On Hera, I have to deactivate and reactivate the venv in order to find the esmf-profiler in the path:

[Rocky.Dunlap@hfe05 esmf-profiler]$ source ./venv/bin/activate.csh 
[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ pip install -e .
Obtaining file:///scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler
Installing collected packages: profiler
  Running setup.py develop for profiler
Successfully installed profiler
[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ esmf-profiler
esmf-profiler: Command not found.

Note that the version (0.1.1) is not shown above, but it does show if the command is repeated:

[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ pip install -e .
Obtaining file:///scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler
Installing collected packages: profiler
  Found existing installation: profiler 0.1.1
    Uninstalling profiler-0.1.1:
      Successfully uninstalled profiler-0.1.1
  Running setup.py develop for profiler
Successfully installed profiler
[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ esmf-profiler
esmf-profiler: Command not found.

The esmf-profiler is not found. If I deactivate/activate again, it is found:

[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ deactivate 
[Rocky.Dunlap@hfe05 esmf-profiler]$ source ./venv/bin/activate.csh
[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ esmf-profiler
usage: esmf-profiler [-h] -t TRACEDIR -n NAME -o OUTDIR [-p PUSH] [-v] [-s]
esmf-profiler: error: the following arguments are required: -t/--tracedir, -n/--name, -o/--outdir

To Reproduce
Follow steps above on Hera.

Expected behavior
Ideally, the user should not need to deactivate/activate again.

@rsdunlapiv I ran a full end to end and had no issues other than the local server not starting (likely can't run that on Hera).

I'm not specifying the activate.csh when activating the virtual environment:

source ./venv/bin/activate

On Hera the default shell is tcsh.

[Rocky.Dunlap@hfe05 esmf-profiler]$ source ./venv/bin/activate
Badly placed ()'s.

So instead I run:

[Rocky.Dunlap@hfe05 esmf-profiler]$ source ./venv/bin/activate.csh 
[venv] [Rocky.Dunlap@hfe05 esmf-profiler]$ 

When I switch to bash, it works:

bash-4.2$ source ./venv/bin/activate
(venv) bash-4.2$ pip install -e .
Obtaining file:///scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler
Installing collected packages: profiler
  Running setup.py develop for profiler
Successfully installed profiler
(venv) bash-4.2$ esmf-profiler
usage: esmf-profiler [-h] -t TRACEDIR -n NAME -o OUTDIR [-p PUSH] [-v] [-s]
esmf-profiler: error: the following arguments are required: -t/--tracedir, -n/--name, -o/--outdir

Ideally, we would support tcsh since that is the default shell on Hera.

If that's is not possible, then we would want to say that bash is required and add that to quick start guide. I would prefer that we support tcsh because that is a better user experience for users on Hera. (Switching shells is something that users could easily miss, so any steps we can take for the tool to work in the default environment is a good move.)