Ciao Giorgio,
"cplex-direct" is a solver interface that directly interfaces with cplex through the cplex API, and does not use any file io, as it happens for the "cplex" interface. Thus, I thought it was the most suitable interface for setting a callback, since I think the only way to inform cplex about the presence of a callback is through the API.
In any case I tried all the cplex interfaces, that are: cplex-direct, cplex-persistent and cplex, and all of them have the _allow_callbacks attribute set to False, and so I always got the same exception. Looking inside the source code, I didn't find any method that sets _allow_callbacks to True, it's always False. Maybe this feature is not yet implemented, or maybe I'm missing something.
Please, if you know how to use callbacks from pyomo or if notice that I forgot something important to enable the callbacks let me Know!!
Thanks,
Riccardo