The PythonAnywhere newsletter, April 2016


Spring is here, we’re filled with good intentions, and here is another newsletter, almost exactly a month after the previous one, which is 800% better than our previous interval.

So other than good intentions, clock changes, and eating too much chocolate, what’s been going on? Plenty of stuff it turns out, and it’s all for you, dear users.

PythonAnywhere now supports Python 3.5

Python 3.5 has been out of beta since last summer, and in the end we figured that if we wanted to preserve any self-respect whatsoever, it was time to make it available on PythonAnywhere.

You can now use Python 3.5 in web apps, consoles and scheduled tasks. And IPython Notebooks too if you’re a paying user!

Python 3.5 in and of itself isn’t that exciting – there’s a bunch of syntactic sugar for asyncio (which we don’t support for web apps however), there’s a matrix multiplication operator, @, which might be useful for a niche audience, and a few nice bugfixes and extensions in pathlib and subprocess and elsewhere:

Here are the official Python 3.5 release notes.

But one of the nice side-effects was that we got to install a fresh stack of packages, so the default version of Django is 1.9 in Python 3.5, and it also has the latest version of requests, and so on. More info on the “batteries included” page.

But you should probably still use a virtualenv for your web apps!

The inside scoop on our forums

Useful tips

New modules

Although you can install Python packages on PythonAnywhere yourself, we like to make sure that we have plenty of batteries included. Here’s what we’ve added since the last newsletter:

Python 3.5

It’s new, so we’ve added all of the packages that we previously supported for Python 3.4 and 3.3. We’ve installed the most recent versions we could get, though, so many of them are more up-to-date. Django 1.9.3 FTW!

Python 2.7, 3.3 and 3.4

  • pyodbc and its lower-level dependencies, so you should be able to connect to Microsoft SQL Servers elsewhere on the Internet.
  • pypdftk and its dependencies – now we have three separate PDF libraries!
  • pint
  • uncertainties
  • flask-openid
  • And finally, we’ve upgraded twilio so that it works properly from free accounts.

Python 3.3 and 3.4 specific

  • mysqlclient (so now Django should work out of the box with Python 3)
  • basemap

New whitelisted sites

Paying PythonAnywhere customers get unrestricted Internet access, but if you’re a free PythonAnywhere user, you may have hit problems when writing code that tries to access sites elsewhere on the Internet. We have to restrict you to sites on a whitelist to stop hackers from creating dummy accounts to hide their identities when breaking into other people’s websites.

But we really do encourage you to suggest new sites that should be on the whitelist. Our rule is, if it’s got an official public API, which means that the site’s owners are encouraging automated access to their server, then we’ll whitelist it.

Here are some sites we’ve added since our last newsletter:

  • *.wikidata.org – like you’d expect, Wikipedia’s database.
  • api.api.ai – speech-to-text
  • *.golang.org and *.googlesource.com so that GoLang developers can run stuff on PythonAnywhree
  • cloud.memsource.com – a translation platform
  • api.locu.com – a site to push business listings to a variety of directories
  • cloud.feedly.com – manage RSS feeds
  • string-db.org – a protein interaction database
  • api.football-data.org – exactly what you think it is, unless you’re in the US – it’s about soccer.
  • api.fixer.io – API for the FX rates published by the European Central Bank
  • api.mca.sh – a Norwegian banking site.
  • eliteprospects.com – hockey stats
  • qq.com – various endpoints for one of China’s biggest sites
  • overpass-api.de – German transport data
  • app.box.com and api.box.com – Dropbox for the enterprise
  • *.mlab.com – MongoLab’s new name
  • mikomos.com – an online database of places to meet for dates.
  • api.stormpath.com – an identity API

And that’s it

Thanks for reading our newsletter! Tune in the same time next month for more news from PythonAnywhere.

comments powered by Disqus