The turbulent exchanges, or fluxes, of heat, moisture and momentum between the atmosphere and the ocean play a crucial role in the Earth’s climate system. Direct measurements of turbulent fluxes are very challenging and sparse, and do not span the full range of environmental conditions that exist over the ocean. This means that empirical “bulk formulae” parameterizations that relate direct flux observations to concurrent measurements of the mean meteorological and sea surface variables contain considerable uncertainty. In this paper, we present a Python 3.6 (or higher) open-source software package “AirSeaFluxCode” for the computation of the heat (latent and sensible) and momentum fluxes. Ten different parameterizations are included, each based on published descriptions or code and each derived from a different set of observations, or different assumptions about the turbulent exchange processes. They represent a range of current expert opinion on how the fluxes depend on mean properties and can be used to explore uncertainty in calculated fluxes. AirSeaFluxCode also allows the adjustment of the mean meteorological input parameters (air temperature, humidity and wind speed) from the height at which they are obtained to a user-defined output height. This height adjustment enables the comparison of measurements, or model-derived values, made at different heights above sea-level. The parameterizations calculate the fluxes using input parameters that are relatively easily to measure, or are available as model output: wind speed, air temperature, sea surface temperature, atmospheric pressure and humidity. Where original code is available we have compared its output with that of AirSeaFluxCode. Any changes made to increase consistency across algorithms by standardizing computational methods or calculation of meteorological variables, for example, are discussed and the impacts quantified: these are shown to be insignificant except for a few cases where conditions were extreme, and AirSeaFluxCode is shown to be robust. We also investigate the impact on the fluxes caused by different assumptions about the exchange processes, or the choices inherent in the implementation of the parameterizations. For example, sea surface temperature usually refers to data typically obtained at depths of between 1 and 10 m. However, since some parameterizations require a “skin” sea surface temperature, code that adjusts temperature at depth to skin temperature is included: this has a very significant impact on the fluxes. Selecting a parameterization that is appropriate for the available sea surface temperature will avoid the need to adjust the sea temperature data and the uncertainties associated with that adjustment, and will also avoid the biases due to use of the “wrong” measure of temperature. Significant differences also resulted from assumptions about the size of reduction in sea surface humidity to account for salinity effects: the uncertainty in the reduction factor needs to be quantified in future analyses. Fluxes in extreme conditions are particularly uncertain since the transfer coefficients in the different parameterizations vary most at very high and very low wind speeds. Low wind speeds are also challenging for numerical implementation since choices have to be made regarding: convergence criteria for the iterative calculation, inclusion of a parameterization for convective gustiness, or application of ad hoc limits to various parameters. All of these choices can significantly affect the flux estimates for light winds.