1. Classify the Python workload
Separate a lightweight web application or script from a system service. Document the framework, Python version, dependencies, entry point, database, scheduled jobs and whether the application needs a process to remain running continuously.
- A language choice alone does not justify VPS.
- A persistent daemon or unsupported system package may justify KVM.
- CPU-heavy data processing may outgrow shared limits even when the application technically runs.
2. Select the Python version
GreatHosts CP exposes selectable Python 3.x runtimes through 3.13 in the environment previously verified. Use the version your application supports; do not move a production application to a newer interpreter without dependency testing.
3. Isolate dependencies
Use the virtual-environment mechanism exposed by the hosting environment and install only the dependencies the project needs. GreatHosts CP exposes the relevant Python, pip and virtual-environment paths for the selected runtime.
- Pin important dependency versions.
- Avoid installing development/test packages in production.
- Keep credentials in configuration/environment mechanisms rather than source code.
4. Connect databases and files
If the application uses MySQL, the verified database host is localhost and available MySQL generations include 5.7, 8.0 and 8.4. Put public/static assets in the domain path expected by the application and keep private configuration outside the public path where the hosting layout allows it.
5. Understand the shared-hosting boundary
Shared hosting is appropriate only while the application fits the managed execution model and resource allowance. The entry shared CPU allowance is documented at approximately 5% of server CPU, with some plans offering more.
- Use cron for periodic tasks that do not require a continuously running worker.
- Move to KVM when root access or unrestricted system services are requirements.
- Measure CPU/timeouts before assuming the tier is too small.
6. Test the complete request path
After deployment, test the public route, database operations, static assets, uploads, outbound email if used, scheduled tasks and error handling. Capture exact errors before changing runtime versions or packages.
7. When KVM is the correct answer
Choose KVM VPS when the application needs root, custom system packages that cannot be provided in the managed environment, permanently running services, custom networking, or sustained resources beyond the shared service.
Common questions
Does Python automatically require VPS?
No. GreatHosts exposes managed Python runtimes; the process model and workload determine whether shared hosting is appropriate.
Which Python version should I choose?
Use a version supported by your application and its dependencies. The verified GreatHosts environment exposes Python 3.x versions through 3.13.
What if my app needs a permanent worker?
That is a strong signal to evaluate KVM VPS unless the selected managed service explicitly supports that worker model.