System requirements shall be checked explicitly
Each time there is dynamic system requirement it shall be checked explicitly for its existence. It is disallowed to do checks based on "global" parameters, like software version.
Good coding
try:
import elmementtree
except ImportError:
requirement_list.append('elementtree')
Bad coding
if sys.version < '2.5':
requirement_list.append('elementtree')
Rationale
In above example developer assumes that python in version 2.5 and above has elementree included. Even if it is standard way of packaging python because of historical reasons or because of minimal package there are python versions greater or equal to 2.5 without elementtree. So such check is incorrect and leads to non functional program.