I want to create a new cytoscape app for analysing protein interaction but I don't know if I can use python or just java.
Great question. This is within scope of this forum.
The answer is "it depends". Cytoscape apps themselves must be Java (or something that runs in JVM, though there's only documentation support for Java and the forums will give best advice for Java).
However, the Cytoscape Cyberinfrastructure (CI) allows Python-based services (e.g., the Diffusion service) called by Cytoscape apps (e.g., the Diffusion app). The service must be deployed somewhere on the web (e.g., in a Kubernetes cluster).
If you'd like help with that route, you'll find enthusiastic support ... please e-mail the cytoscape-app-dev at googlegroups.com forum directly.