Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python:3 virtualenv load failing probably #5480

Open
singhsegv opened this issue May 2, 2024 · 2 comments
Open

Python:3 virtualenv load failing probably #5480

singhsegv opened this issue May 2, 2024 · 2 comments

Comments

@singhsegv
Copy link

singhsegv commented May 2, 2024

I am trying to deploy a basic python action with an included virtualenv. I followed this official tutorial of using openwhisk/python3action container to create a virtualenv and zipping it with __ main __.py file. But i still get an module not found error while actually running that action.

Environment details:

  • Deployed on MacOS using the openwhisk-deploy-kube repo
  • Docker version 24.0.2, build cb74dfc
  • K8s version v1.27.2

Steps to reproduce the issue:

  1. Follow the Packaging Python actions with a virtual environment in zip files step from this official tutorial https://github.com/apache/openwhisk/blob/master/docs/actions-python.md#packaging-python-actions-with-a-virtual-environment-in-zip-files
  2. Add networkx or any other non standard module.
  3. Create an action and try invoking it

Provide the expected results and outputs:

Provide the actual results and outputs:

 "logs": [
        "2024-05-01T17:42:09.338809562Z stdout: Traceback (most recent call last):",
        "2024-05-01T17:42:09.338871934Z stdout:   File \"exec__.py\", line 44, in <module>",
        "2024-05-01T17:42:09.33888039Z  stdout:     from main__ import main as main",
        "2024-05-01T17:42:09.338884751Z stdout:   File \"/action/1/bin/main__.py\", line 1, in <module>",
        "2024-05-01T17:42:09.338889153Z stdout:     import networkx as nx",
        "2024-05-01T17:42:09.338892881Z stdout: ModuleNotFoundError: No module named 'networkx'",
        "2024-05-01T17:42:09.355858711Z stdout: Command exited abruptly during initialization.",
        "2024-05-01T17:42:09.430444173Z stderr: The action did not initialize or run as expected. Log data might be missing."
    ],

Additional information you deem important:

  • My guess is that there might be some issue while loading the virtualenv. Not sure where to debug it in openwhisk-runtime-python
@rabbah
Copy link
Member

rabbah commented May 6, 2024

Are you sure you're using the same python version in your venv as the action's runtime?

@singhsegv
Copy link
Author

Yep the python versions were same.
The problem turned out that I was adding a venv folder with the main.py and not requirements.txt and after digging a little deeper into the openwhisk-runtime-python source code here, I am guessing it is something related to def virtualenv(tgt_dir): function implemention.

I am not 100% sure though as I haven't setup a debugger to figure out the code flow. Will update this thread as soon as I get some free time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants