Open sijie opened 4 years ago
Hi, I implemented a fix for this before the holidays. It's over here: https://github.com/sbourkeostk/pulsar/commit/60f516389b14b029c4361290dae990b133807e08 The main idea is that it adds a boolean python3 option to the function config. This involves a change to the function config protobuf definition. Is that ok? If that's not a show stopper, I can bring it up to date and look into getting it to pass the test suite.
Original Issue: apache/pulsar#5518
Describe the bug python functions do not start if the system has "python3" but not "python" (which is the case for modern Ubuntu systems - "python" is python2 and is not installed by default)
To Reproduce Write a simple function
func1.py
Deploy it:
(side note: have to give absolute path to function, pulsar-admin changes the working directory)
Check its status:
Note error: Cannot run program "python": error=2, No such file or directory
Expected behavior I would expect the function to deploy.
Screenshots N/A
Desktop (please complete the following information): N/A
Additional context This may be the same problem as #5369 - however in that case, it's the shebang line in pulsar's own python code, whereas this one is my own function which is not starting.
I cannot find it stated in Pulsar documentation whether Pulsar supports python2, python3 or both. However python2 is very shortly going to be end-of-life.
Workarounds
Install python2 and write my code in python2. I really don't want to do that, with python2 being end-of-life in 2 months' time.
Symlink python to python3. However in Ubuntu systems, symlinking python to python3 has the potential to cause all sorts of problems. Many applications and scripts depend on
python
meaningpython2
(in which case they will depend on thepython-XXX
packages rather thanpython3-XXX
). More content here.Ideally pulsar would try python3 and fallback to python. If pulsar were to be hard-coded to run "python3" instead of "python" that would also be fine IMO, given the impending EOL of python2.