Specifying file directories using environment variables¶
One way to specify where the submit, log, output, and error files for a Job
should be written is by using the submit, log, output, and
error Job parameters. For example,
from pycondor import Job
import os
error = os.path.abspath('condor/error')
output = os.path.abspath('condor/output')
log = os.path.abspath('condor/log')
submit = os.path.abspath('condor/submit')
job = Job(name='sleep_job',
          executable='/bin/sleep',
          submit=submit,
          error=error,
          output=output,
          log=log)
Alternatively, these directories can also be specified by defining
PYCONDOR_SUBMIT_DIR, PYCONDOR_ERROR_DIR, PYCONDOR_LOG_DIR, and
PYCONDOR_OUTPUT_DIR environment variables.
If any directories are explicitly passed to a Job, then they will be used over an environment variable. While if an environment variable is set, and a directory is not explicitly passed to a Job, then the directory given by an environment variables will be used.
So the above code is equivalent to
from pycondor import Job
import os
os.environ['PYCONDOR_SUBMIT_DIR'] = os.path.abspath('condor/submit')
os.environ['PYCONDOR_ERROR_DIR'] = os.path.abspath('condor/error')
os.environ['PYCONDOR_LOG_DIR'] = os.path.abspath('condor/log')
os.environ['PYCONDOR_OUTPUT_DIR'] = os.path.abspath('condor/output')
job = Job(name='sleep_job',
          executable='/bin/sleep')
In addition, if you’ve specified these environment variables in your shell via
export PYCONDOR_SUBMIT_DIR="condor/submit"
export PYCONDOR_ERROR_DIR="condor/error"
export PYCONDOR_LOG_DIR="condor/log"
export PYCONDOR_OUTPUT_DIR="condor/output"
then above Jobs are equivalent to
from pycondor import Job
job = Job(name='sleep_job',
          executable='/bin/sleep')