Importing cartopy is not enough. If you list proj as optional, people will wonder why they can't do anything useful with cartopy! Cartopy is designed for doing transforms between coordinates, that is its core functionality and this depends on proj, so it needs to be a required dependency.