Skip to main content

I've installed Rocket Open AppDev for Z (free solution), but Python doesn't seem to be working quite right.

In particular, I'm getting different behavior based on whether I invoke Python via executing the script vs. invoking Python manually and passing it the script.  For example, with the following sample test.py:

#!/z/rocket/tools/bin/python

print("Hello world!")

If I invoke Python explicitly and pass it the script, it works just fine:

$ /z/rocket/tools/bin/python test.py

Hello world!

If I instead invoke the script directly, I get the following.

$ ./test.py

./test.py: can't open file '/u/z123/SHELL=/z/rocket/tools/bin/bash': [Errno 129] EDC5129I No such file or directory.

That looks like it's somehow interpreting the environment being passed to python ("SHELL=...") as the script name it's supposed to execute.  Indeed, if I then pass the script name as the first argument, it works:

$ ./test.py test.py

Hello world!

Stranger still, I don't see this behavior with scripts that invoke /bin/sh or /z/rocket/tools/bin/bash.

The following environment variables seem to be correctly set:

_BPXK_AUTOCVT=ON

_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)

PATH=/z/rocket/tools/condabin:/z/rocket/tools/bin:/bin:.

Changing the value of _BPX_SPAWN_SCRIPT doesn't change the behavior either.

Any ideas?

I've installed Rocket Open AppDev for Z (free solution), but Python doesn't seem to be working quite right.

In particular, I'm getting different behavior based on whether I invoke Python via executing the script vs. invoking Python manually and passing it the script.  For example, with the following sample test.py:

#!/z/rocket/tools/bin/python

print("Hello world!")

If I invoke Python explicitly and pass it the script, it works just fine:

$ /z/rocket/tools/bin/python test.py

Hello world!

If I instead invoke the script directly, I get the following.

$ ./test.py

./test.py: can't open file '/u/z123/SHELL=/z/rocket/tools/bin/bash': [Errno 129] EDC5129I No such file or directory.

That looks like it's somehow interpreting the environment being passed to python ("SHELL=...") as the script name it's supposed to execute.  Indeed, if I then pass the script name as the first argument, it works:

$ ./test.py test.py

Hello world!

Stranger still, I don't see this behavior with scripts that invoke /bin/sh or /z/rocket/tools/bin/bash.

The following environment variables seem to be correctly set:

_BPXK_AUTOCVT=ON

_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)

PATH=/z/rocket/tools/condabin:/z/rocket/tools/bin:/bin:.

Changing the value of _BPX_SPAWN_SCRIPT doesn't change the behavior either.

Any ideas?

Hello John,

Can you share the output of the following commands:

python --version

env | sort

Thanks,

Alexander


I've installed Rocket Open AppDev for Z (free solution), but Python doesn't seem to be working quite right.

In particular, I'm getting different behavior based on whether I invoke Python via executing the script vs. invoking Python manually and passing it the script.  For example, with the following sample test.py:

#!/z/rocket/tools/bin/python

print("Hello world!")

If I invoke Python explicitly and pass it the script, it works just fine:

$ /z/rocket/tools/bin/python test.py

Hello world!

If I instead invoke the script directly, I get the following.

$ ./test.py

./test.py: can't open file '/u/z123/SHELL=/z/rocket/tools/bin/bash': [Errno 129] EDC5129I No such file or directory.

That looks like it's somehow interpreting the environment being passed to python ("SHELL=...") as the script name it's supposed to execute.  Indeed, if I then pass the script name as the first argument, it works:

$ ./test.py test.py

Hello world!

Stranger still, I don't see this behavior with scripts that invoke /bin/sh or /z/rocket/tools/bin/bash.

The following environment variables seem to be correctly set:

_BPXK_AUTOCVT=ON

_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)

PATH=/z/rocket/tools/condabin:/z/rocket/tools/bin:/bin:.

Changing the value of _BPX_SPAWN_SCRIPT doesn't change the behavior either.

Any ideas?

I use: 

#!/usr/bin/env python3


I've installed Rocket Open AppDev for Z (free solution), but Python doesn't seem to be working quite right.

In particular, I'm getting different behavior based on whether I invoke Python via executing the script vs. invoking Python manually and passing it the script.  For example, with the following sample test.py:

#!/z/rocket/tools/bin/python

print("Hello world!")

If I invoke Python explicitly and pass it the script, it works just fine:

$ /z/rocket/tools/bin/python test.py

Hello world!

If I instead invoke the script directly, I get the following.

$ ./test.py

./test.py: can't open file '/u/z123/SHELL=/z/rocket/tools/bin/bash': [Errno 129] EDC5129I No such file or directory.

That looks like it's somehow interpreting the environment being passed to python ("SHELL=...") as the script name it's supposed to execute.  Indeed, if I then pass the script name as the first argument, it works:

$ ./test.py test.py

Hello world!

Stranger still, I don't see this behavior with scripts that invoke /bin/sh or /z/rocket/tools/bin/bash.

The following environment variables seem to be correctly set:

_BPXK_AUTOCVT=ON

_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)

PATH=/z/rocket/tools/condabin:/z/rocket/tools/bin:/bin:.

Changing the value of _BPX_SPAWN_SCRIPT doesn't change the behavior either.

Any ideas?

I've since discovered that IBM's Python does the same thing.  Its documentation mentioned the need for /usr/bin/env, so I made sure that was present and changed my script to start with "#!/usr/bin/env python" ... and that works.

So I can use that approach for my scripts, but all of the scripts installed by Rocket installer break, because they all start with "#!/z/rocket/tools/bin/python".  

I seem to be the first person to encounter this, so clearly there's something strange about my system...

$ /z/rocket/tools/bin/python --version

Python 3.10.7

$ /usr/lpp/IBM/cyp/v3r10/pyz/bin/python --version

Python 3.10.12

$ env | sort

ASCII_TERMINFO=/z/rocket/tools/share/terminfo
CURL_CA_BUNDLE=/z/rocket/tools/etc/ssl/cacert.pem
FFI_LIB=/z/rocket/tools/lib/ffi
HOME=/u/user
LANG=C
LC_ALL=C
LIBPATH=/z/rocket/tools/lib:/lib:/usr/lib:.:/usr/lpp/IBM/zoautil/lib
LOGNAME=USER
MAIL=/usr/mail/USER
MANPATH=/z/rocket/tools/share/man:/usr/man/%L:/usr/lpp/IBM/zoautil/docs/%L
NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat
OPENSSL_CONF=/z/rocket/tools/bin/openssl.cfg
PAGER=/bin/more
PATH=/usr/bin:/z/rocket/tools/bin:/bin:.:/usr/lpp/IBM/zoautil/bin
PS1=[u@h w]$ 
PWD=/u/user
SHELL=/z/rocket/tools/bin/bash
SHLVL=0
SSH_CLIENT=XXXX
SSH_CONNECTION=XXXX
SSH_TTY=/dev/ttyp0000
SSL_CERT_DIR=/z/rocket/tools/ssl/certs
STEPLIB=none
TERM=xterm
TZ=CST6CDT
USER=USER
ZOAU_HOME=/usr/lpp/IBM/zoautil
_=/usr/bin/env
_BPXK_AUTOCVT=ON
_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON) HEAPP(ON,8,10,32,10,128,10,256,10,1024,10,2048,10,0,10,0,10,0,10,0,10,0,10,0,10)
_TAG_REDIR_ERR=txt
_TAG_REDIR_IN=txt
_TAG_REDIR_OUT=txt