{"id":21533,"library":"lithops","title":"Lithops","description":"Lithops is a Python library for transparently running your Python applications in the Cloud, supporting serverless and containerized platforms like AWS Lambda, Google Cloud Functions, IBM Cloud Functions, Kubernetes, and more. Version 3.6.4 is the latest, with a release cadence of roughly monthly minor versions.","status":"active","version":"3.6.4","language":"python","source_language":"en","source_url":"https://github.com/lithops-cloud/lithops","tags":["serverless","distributed-computing","cloud","faas"],"install":[{"cmd":"pip install lithops","lang":"bash","label":"Core install"},{"cmd":"pip install lithops[aws]","lang":"bash","label":"Install with AWS dependencies"},{"cmd":"pip install lithops[ibm]","lang":"bash","label":"Install with IBM dependencies"}],"dependencies":[{"reason":"Required for AWS Lambda, AWS Batch, etc.","package":"lithops[aws]","optional":true},{"reason":"Required for IBM Cloud Functions and COS.","package":"lithops[ibm]","optional":true},{"reason":"Required for Kubernetes backend.","package":"lithops[kubernetes]","optional":true},{"reason":"Required for Google Cloud Functions.","package":"lithops[google]","optional":true}],"imports":[{"note":"FunctionExecutor is exposed directly from lithops.","wrong":"from lithops.executor import FunctionExecutor","symbol":"FunctionExecutor","correct":"from lithops import FunctionExecutor"},{"note":"Commonly imported from lithops.storage.","symbol":"Storage","correct":"from lithops.storage import Storage"},{"note":"ibm_cf is a module within lithops, not a top-level package.","wrong":"import ibm_cf","symbol":"ibm_cf","correct":"from lithops import ibm_cf"}],"quickstart":{"code":"from lithops import FunctionExecutor\ndef hello(name):\n    return f'Hello {name}!'\nfexec = FunctionExecutor()\nfexec.call_async(hello, 'World')\nresult = fexec.get_result()\nprint(result)","lang":"python","description":"Basic example: define a function, invoke it asynchronously via Lithops, and retrieve the result."},"warnings":[{"fix":"Always call .get_result() or .wait() on the returned future.","message":"FunctionExecutor is not a context manager; you must call .get_result() or .wait() to ensure the execution completes. Failing to do so may result in uncollected futures.","severity":"gotcha","affected_versions":"all"},{"fix":"Install with extras: pip install lithops[aws] or pip install lithops[ibm].","message":"In lithops 3.4.0, AWS and IBM dependencies were moved to extras (lithops[aws], lithops[ibm]). Installing without extras will no longer include boto3 or ibm-cos-sdk.","severity":"breaking","affected_versions":">=3.4.0"},{"fix":"Use a wrapper function or ensure the partial is picklable. Version 3.6.4 improved support.","message":"When using functools.partial with call_async or map, ensure the partial object is pickleable. Lithops serializes the function and arguments.","severity":"gotcha","affected_versions":"<=3.6.3"},{"fix":"Configure AWS credentials via AWS CLI or environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY).","message":"Passing access and secret keys directly in config for AWS is deprecated since lithops 3.3.0. Use IAM roles or environment variables.","severity":"deprecated","affected_versions":">=3.3.0"},{"fix":"Upgrade to lithops>=3.5.0 or explicitly set monitoring_interval in config.","message":"Default monitoring interval may cause 'KeyError: 'monitoring_interval'' if not set correctly (fixed in 3.5.0).","severity":"gotcha","affected_versions":"<3.5.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Install lithops with AWS extras: pip install lithops[aws]","cause":"Missing AWS dependencies; lithops requires boto3 for AWS backends.","error":"ModuleNotFoundError: No module named 'boto3'"},{"fix":"Install lithops with IBM extras: pip install lithops[ibm]","cause":"IBM Cloud dependencies are not installed.","error":"ibm_boto3 and ibm-cos-sdk are missing"},{"fix":"Upgrade lithops to >=3.5.0 or add 'monitoring_interval' to your lithops config.","cause":"Configuration missing monitoring_interval key in older versions.","error":"KeyError: 'monitoring_interval'"},{"fix":"Use fexec.get_result() on the executor or call .result() on the future after .wait().","cause":"Calling .result() on a Lithops future instead of .get_result() or using the future returned by call_async incorrectly.","error":"AttributeError: 'Future' object has no attribute 'result'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}