Forums

Application Hosting & Usage

Hello, Relatively inexperienced "developer" (generous description of myself) here, admittedly. I have a few questions:

  1. I want to put a licensed application (for sake of example, Adobe Photoshop) on the PythonAnywhere servers and then pass scripts to it to generate content that I can store/deliver. Doable? Tips?

  2. Any one know the best way for me to figure out the CPU seconds I would need?

  3. I think I could need a Terabtye or more of storage. I don't think I can buy this much space on PythonAnywhere. Can I? If not, anyone know the best low-cost storage options I could pull files from?

  4. Is PythonAnywhere a cost-effective option for this compared to, say, AWS? What is the premium I'm paying for PythonAnywhere making this project (to my mind, much) easier to set up, in other words?

Many thanks.

That's a very ambitious project you got there. I will try to answer as best as I can.

My opinion is my personal one so it doesn't reflect PythonAnywhere as a whole.

I will also try to be pragmatic, but do not let this discourage you. The greatest achievements overcome or sidestep limitations in clever ways, so I hope you will find a way to work around this behemoth of a project you describe.

1.  Running licensed desktop software like Photoshop on PythonAnywhere

No, that’s not something PythonAnywhere is designed for. Neither AWS as far as I know, unless we talk about running a virtual machine in remote desktop. This is generally very flaky, resource intensive and inefficient. Machines do not like GUIs so, generally speaking, you will have a very hard time trying to make a machine use a program as users do. I might be getting ahead of myself though and you might have a cli tool in mind though.

The reason why these tools are not working is that you can’t install or run arbitrary GUI desktop applications on our servers, and you won’t get the kind of OS-level access you’d need to manage licensing, background GUI processes, or automation around them. PythonAnywhere is for running Python code (web apps, scripts, scheduled tasks, always-on tasks), not for hosting general-purpose software.

If what you really need is “run a program and generate files”, the typical approach is to use a server-friendly toolchain (for example, ImageMagick/Pillow for images, ffmpeg for video, etc) rather than a GUI desktop app.

<hr />
2.  Estimating CPU seconds

A good starting point is to benchmark your workload locally:

  • Run the core job once (or in a loop for 10–100 iterations).
  • Measure runtime and peak CPU usage.
  • Convert that into “runs per day × seconds per run”.

Then add a safety margin, because production workloads tend to have variation (bigger inputs, bursts, slower external APIs, etc). If your processing is heavy or long-running, it’s often better to design it as a background task and keep the web request path fast.

<hr />
3.  A terabyte or more of storage

PythonAnywhere generally isn’t the right place for TB-scale storage. For that kind of volume, most people store the bulk data on an external object store and only keep code and small working sets on PythonAnywhere.

Common patterns:

  • Store files in an object store (S3-like) and access them from your PythonAnywhere code.
  • Use a CDN in front if you need to deliver lots of static content efficiently.
<hr />
4. Cost effectiveness vs AWS

PythonAnywhere is usually “paying for simplicity”: easy deployment, managed environment, fewer moving parts, and less DevOps overhead. AWS can be cheaper at scale or for certain workloads, but you pay in setup and operations complexity (networking, instances, scaling, patching, logging, security hardening, etc).

A simple rule of thumb:

  • If you want fast setup and low ops overhead for a Python web app + background jobs, PythonAnywhere is often great value.
  • If you need custom system software, specialized services, or large-scale storage/throughput, AWS (or similar) tends to be the better fit.
<hr />

TLDR; I don't think wrapping an app around a GUI licensed software is achievable in any of these systems and the operational overhead alone with be a huge issue. You need to think more about APIs, services and pipelines.

What are you trying to achieve is very ambitious and a back of the napkin estimations is at least a few thousands on bills every month, especially if you take into account how expensive is to process image and video.

Many thanks. Perhaps one clarification, to see how that changes any of the (very generous and appreciated) response above: I don't plan to utilize the GUI of the software. I can in fact feed in a script, like utilizing an API, and accomplish everything I would have with mouse clicks and key strokes. I had hope the software provider had an API for their application that I could send requests to, but it doesn't seem like they do, so my alternative approach was to use my desktop license but host the application on a cloud server and work with it via my instructional scripts, delivered with Python. Curious if these comments prompt any additional thoughts. I talked to an AWS architect who thought we could do this, and I've been trying to set it up, but I find their interface hard to work with and a lot more confusing than PA makes theirs. Again, tremendously appreciate your thoughts.