I confirmed how does this problem occurs.
Ryu (app/ofctl/api.py) uses the call stack to load the dependent-app('ryu.app.ofctl.service').
When ovs_ryuapp.py be compiled to pyc, the call stack changed and missed the stack of ovs_ryuapp.
So, the dependent-app will not be assigned to ovs_ryuapp, then the ofctl would not be loaded.
This may be the bug of Ryu, and NOT compile the ovs_ryuapp.py to pyc may avoid this problem.
I confirmed how does this problem occurs. app('ryu. app.ofctl. service' ).
Ryu (app/ofctl/api.py) uses the call stack to load the dependent-
When ovs_ryuapp.py be compiled to pyc, the call stack changed and missed the stack of ovs_ryuapp.
So, the dependent-app will not be assigned to ovs_ryuapp, then the ofctl would not be loaded.
This may be the bug of Ryu, and NOT compile the ovs_ryuapp.py to pyc may avoid this problem.