How to tell buildout NOT to download a version of a package?

This seems like an easy problem but has gotten me frustrated.

When I run buildout it get a version of pyldap that I want which is 2.3.13, but then right at the end it gives me this error:

$ sudo bin/buildout
Unused options for buildout: 'backups-dir'.
Installing instance.
Getting distribution for 'python-ldap==2.3.13'.
extra_compile_args:
extra_objects:
include_dirs: /usr/local/openldap-2.3/include /usr/include/sasl
library_dirs: /usr/local/openldap-2.3/lib
libs: ldap_r lber sasl2 ssl crypto
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
warning: no files found matching 'Makefile'
warning: no files found matching 'Modules/LICENSE'
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
Got python-ldap 2.3.13.
While:
  Installing instance.
Error: There is a version conflict.
We already have: python-ldap 2.3.13
but pyldap 3.0.0 requires 'python-ldap>=3.0.0b1'.    

How do I get it to not want the 3.0.0? I have found no place that it is pinned to 3, but there is actually a pin in the buildout that pins it to 2.3.13 which is the right version.

use "buildout annotate" to work out what the final buildout that is run is. sometimes things get overridden, like version pins.

Ensure your pin is in a [version] section. That takes precedence over anything you put in the eggs section.

Finally other packages themselves can specify version constraints in their setup.py and you can't override those. This is most likely what is going on here because it says so "pyldap 3.0.0 requires 'python-ldap>=3.0.0b1'". So you need to pin pyldap to a version that doesn't require python-ldap>=3.0.0b1.