Today's Upgrades: Always-On Tasks

Always-On Tasks

We are officially live with our always-on tasks! All paying customers will get one always-on task, and you can add more by customizing your plan on our accounts page. Our infrastructure will try to keep your script always running (ie. we will restart it if your script errors and stops etc). We’d love to know what you think- Just drop us a line using the “Feedback” link, or email us at!

Logging Improvements

We have also improved user experience working with log files. You can now access our API to delete log files (or wipe the file if your particular log file is currently in use), and we have better formatting in place when logging certain web app errors.

Other Stuff

We also optimized the editor that you can access from the ‘Files’ tab to make consoles within it start faster and to avoid scripts rerunning unintentionally.

Auto-renewing your Let's Encrypt certificate with scheduled tasks

This blog post is out-of-date – we can now manage all of your Let’s Encrypt certificates automatically. See this help page for details.

Let’s Encrypt certificates are really useful for custom domains – you can get HTTPS working on your site for free. Their one downside is that the certificate only lasts for 90 days, so you need to remember to renew it.

The good news is that you can set up a scheduled task to do that all for you – no need to put anything in your calendar.

Read more…

Turning a Python script into a website

One question we often hear from people starting out with PythonAnywhere is “how do I turn this script I’ve written into a website so that other people can run it?”

That’s actually a bigger topic than you might imagine, and a complete answer would wind up having to explain almost everything about web development. So we won’t do all of that in this blog post :-) The good news is that simple scripts can often be turned into simple websites pretty easily, and in this blog post we’ll work through a couple of examples.

Let’s get started!

Read more…

The PythonAnywhere newsletter, September 2018

Well, our last “monthly” newsletter was in September 2017. We must have shifted the bits in the period left one, or something like that :-)

Anyway, welcome to the September 2018 PythonAnywhere newsletter :-) Here’s what we’ve been up to.

Read more…

Force HTTPS on your website

One smaller feature we added in our last system update was the ability to force HTTPS without needing to change your code. Here’s a bit more information about why you might want to do that, and how it works.

Read more…

Python 3.7 now available!

If you signed up since 28 August, you’ll have Python 3.7 available on your account – you can use it just like any other Python version.

If you signed up before then, it’s a little more complicated, because adding Python 3.7 to your account requires changing your system image.

Read more…

New feature: self-installation of SSL certificates!

This blog post is out-of-date – we can now manage all of your Let’s Encrypt certificates automatically, and have a UI to upload custom certificates. See this help page for details.

Our system update last week added on an API to let you install HTTP certificates yourself instead of having to email us. We’ve been beta-testing it over the last seven days, and it’s now ready to go live :-)

You can either use it by accessing the API directly from your code, or by using our helper scripts (which you can pip install).

This is the first step towards a much improved system for HTTPS – watch this space for more information.

Read more…

System update this morning

We deployed a new version of PythonAnywhere this morning. Everything went pretty smoothly; there were a few problems with some hosted websites shortly afterwards (an error in a load-distribution algorithm put too many websites on some servers, and not enough on others) but some sharp-eye customers spotted the problem and let us know, and we were able to rebalance things and fix the issue quickly.

There are a couple of great new features in the new system, but we’re doing some last-minute testing before making them live – watch this space for more information :-)

Blocked in Russia

We’ve heard reports from some Russian users that PythonAnywhere, and sites that we host, are blocked by their ISPs. The specific error message that they get when visiting the sites in Chrome is ERR_CONNECTION_TIMED_OUT – Firefox has a similar one.

This appears to be the fallout from the Russian government’s ongoing attempts to block the use of the Telegram instant messaging app. Because Telegram use various cloud hosting providers, including AWS and Google, the government has responded by blocking very large ranges of IPs owned by those providers. We’re included in those ranges.

Read more…

Terms and conditions and privacy policy update (yes, it's another GDPR thing)

Like a lot of companies, we’re updating our terms and conditions and privacy and cookies policy in order to comply with the GDPR. The GDPR is a large regulatory change from the European Union, and is mostly about people’s personal data and how it is shared.

The new T&Cs and PP will come into effect on 10 May 2018 and if you carry on using PythonAnywhere after that date, you’ll be agreeing to them, so we figured it would be a good idea to post an explanation about the highlights of the changes.

Read more…