Generalized projects for Neo4j GRM in Python
[Optional] Install virtual environment:
$> sudo apt install python3-pip
$> pip3 install virtualenv
$> python3 -m virtualenv venv
Activate virtual environment:
On macOS and Linux:
$> source venv/bin/activate
On Windows:
$> .\venv\Scripts\activate
[Optional] Install dependencies (in a new virtual environment):
$> pip install -r requirements.txt
Add project directory to PYTHONPATH
$> export PYTHONPATH=$PYTHONPATH:$(pwd)
Configuration parameters are passed through environment variables:
-
GRAPH_DB_HOST - Graph host. Defaults to localhost.
-
GRAPH_DB_PORT - Graph port. Defaults to 27017.
-
GRAPH_DB - Graph db to use. Defaults to graph_db.
$> python ${SERVICE_NAME} ${METHOD_NAME} [parameters...]
It is possible to run all of the above with helper script:
$> chmod +x scripts/activate_venv_and_run_python.sh
$> scripts/activate_venv_and_run_python.sh ${SERVICE_NAME} ${METHOD_NAME} [parameters...]
It is possible to run application using Docker:
Build Docker image:
$> docker build -t python_neo4j -f docker/Dockerfile .
Run Docker container:
$> docker run --rm -t \
-e GRAPH_DB_HOST=${GRAPH_DB_HOST} \
-e GRAPH_DB_PORT=${GRAPH_DB_PORT} \
-e GRAPH_DB=${GRAPH_DB} \
python_neo4j ${SERVICE_NAME} ${METHOD_NAME} [parameters...]
It is possible to run all of the above with helper script:
$> chmod +x scripts/run_docker.sh
$> scripts/run_docker.sh ${SERVICE_NAME} ${METHOD_NAME} [parameters...]
$> python -m pytest tests
It is possible to run all of the above with helper script:
$> chmod +x scripts/activate_venv_and_run_python.sh
$> scripts/activate_venv_and_run_python.sh -m pytest tests
- You can run individual tests from PyCharm by simply right-clicking a test file, and choosing "Run 'pytest in ...''".
- A test may not work yet on the first try, because the Working directory needs to be adjusted. Go to
Run > Edit Configurations...
. Now select the corresponding run configuration, and set theWorking directory
field to the root directory of the python-neo4j project.
It is possible to run application using Docker:
Build Docker image:
$> docker build -t python_neo4j -f docker/Dockerfile .
Run Docker container, and specify GraphDB credentials:
$> docker run --rm -t \
-e GRAPH_DB_HOST=${GRAPH_DB_HOST} \
-e GRAPH_DB_PORT=${GRAPH_DB_PORT} \
-e GRAPH_DB=${GRAPH_DB} \
python_neo4j -m pytest /tests
It is possible to run all of the above with helper script:
$> chmod +x scripts/run_docker.sh
$> scripts/run_docker.sh -m pytest /tests
It is possible to run application using Docker Compose which includes python-neo4j:
Build Docker Compose images:
$> docker-compose -f docker/docker-compose.yml build
Run Docker Compose containers:
$> docker-compose -f docker/docker-compose.yml run --rm \
--name ${CONTAINER_NAME} \
${CONTAINER_NAME} -m pytest /tests
It is possible to run all of the above with helper script:
$> chmod +x scripts/run_docker.sh
$> scripts/run_tests_using_docker_compose.sh