I have written a package to compute efficiently neighborlists of particles within a cutoff, in 2D or 3D, with support for general periodic boundary conditions.
The package is in Julia, but a relatively simple interface with Python is possible, and described here:
This package can be 3 to 10 times faster than neighborlist algorithms implemented in
scipy, and can thus be useful to people developing tools the analysis of particle simulations.
I hope it is useful, and all feedback is greatly appreciated.