n8n-nodes-python
n8n-nodes-python copied to clipboard
Run Python code on n8n
n8n-nodes-python

PythonFunction module - custom node for running python code on n8n.
run python code on n8n
Python Function
PythonFunction node is used to run custom Python snippets to transform data or to implement some custom functionality that n8n does not support yet.
Installation
Using n8n-python Docker Image (Recommended)
This node is pre-installed in the n8n-python docker image .
- Use
n8n-python:latest-debianif you are planning to install heavy python packages such asnumpyorpandas. - Use
n8n-python:latestfor a more lightweight image.
Example using docker-compose.yml
Adding external packages
You can mount a requirements.txt file to the container to install additional packages.
You can use the ExecuteCommand node to
run pip install -r requirements.txt
and the n8nTrigger node to trigger it after each restart.
Install Locally
1- Install Requirements
This node requires the following dependencies to be installed in your environment:
-
Python 3.6 or higher
ython3 --version # check output version -
install fire ip install fire
2- Add n8n-nodes-python to your n8n instance
If you’re running either by installing it globally or via PM2, make sure that you install n8n-nodes-python inside n8n.
n8n will find the module and load it automatically.
If using docker, add the following line to your Dockerfile:
# Install n8n-nodes-python module
RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-python
Read more about the installation process in the n8n documentation - Use the n8n-nodes-module in production .
Usage
This node receives ìtems and should return a list of items.
Example:
new_items = []
for item in items:
item['newField'] = 'newValue'
new_items.append(item)
return new_items # should return a list
The JSON attribute of each item is added and removed automatically. You can access the values directly without the
jsonattribute. You don't need to put the item in ajsonattribute. it will be done automatically.
Variable: items
the items variable is a list of items that are passed to the function. They are directly accessible in the function.
Example:
print(items)
# > list
return items
Credentials: env_vars (optional)
You can specify environment variables to be used in the python code. The environment variables are accessible throw
the env_vars dict.
Example:
print(env_vars)
print(env_vars.get('MY_VAR','default_value'))
# > dict
Logging to the browser console
it is possible to write to the browser console by writing to stdout
Example:
print('Hello World')
# or
import sys
sys.stdout.write('Hello World')
Notes
-
stderris used for passing data between nodes.- if exit code is 0, the node will be executed successfully and
stderrrepresents the JSON representation of the output of the node - if exit code is not 0, the node fails and
stderrrepresents the error message
- if exit code is 0, the node will be executed successfully and
-
The
jsonattribute of each item is added and removed automatically. (you can access and return the items directly without thejsonattribute)
Contribute
Pull requests are welcome! For any bug reports, please create an issue.
License
Apache 2.0 with Commons Clause