Python 3.6 Support

Hello,

I’m investigating Anvil for a side project of mine and I was wondering if it has full Python 3.6 support?

Thank you!
Really hope it does :wink:

On paid plans you have python 3.7 for the server modules.

The client side is 2.7-ish (as some things are not compatible with the Skulpt library that runs Python in the browser.

And on the free plan? Which python version is fully supported?

It’s a restricted version 2 by default.
Restricted meaning not all libraries are available.

Is there any way to somehow integrate Python 3.6 code at the backend / server module at least?

As far as I know, not on a free plan.

But you’d have to ask the Anvil guys for a firm answer (@meredydd, @daviesian or @shaun)

Thank you, waiting for their input.

Not sure if the Uplink is available on free plan or not, but that would allow you do run whatever python you have on your own server to talk to Anvil : https://anvil.works/doc/#uplink

The uplink is pretty cool though it kinda loses the whole point of using Anvil as I wanted to take care of just coding and not running some BE of my own. If I wanted to do that, I wouldn’t use Anvil :slight_smile:
Basically my side project specification is very simple, something I’m sure Anvil can handle without a hassle. Me on the other side, I work full-time as a python (3.6) BE developer and I wanted to use Anvil to enjoy it’s full-package service to get my side project up in the air fast without needing to get a full-stack team. So if I have to use an external BE then it’s not what I am looking for.

That being said, if I’ll have to use python 2.7 then it’s not “the end of the world” and I can handle it, I just wanted to know my options before I dive into it.

Also, generally, I couldn’t find the answer to my question in the online documentation nor the forums, before I opened this thread (or at least the python version support in correlation to the free/paid plan) so I’d recommend the Anvil team to make that clear in the docs etc. so I can search “Anvil Python version support” in google and get that answer which I am sure more people would ask themselves too :slight_smile:

Yes, the Uplink is available on the Free plan!

UPDATE: Anvil now supports Python 3 in Server Modules for both free and paid plans!

Free users use the Basic Python environments (which are less less computationally expensive for us to sandbox, but lack some modules), whereas paid users can use the Full Python 2 or 3 environments.

Also, thanks for the doc request! I have now written up a “What Python versions can I use with Anvil?” page, which will be published in the next few days. You should be able to find it from Google, and you’ll definitely be able to find it from the documentation search in the Anvil editor or the Learning Centre.

So I just want to confirm: If I purchase the INDIVIDUAL plan, I will be able to write server modules in full official python 3.7 without using the uplink feature, meaning completely using Anvil infrastructure. Do I understand correctly?

And about the docs - awesome!
I really appreciate addressing my request so quickly.
Be glad to give a friendly review once it’s done :slight_smile:

(please note I am not an official Anvil spokesman, just an enthusiastic user).

You have access to full python 3.7 on the server side, and I’m not aware of any restrictions other than resources (see here : Anvil | Pricing Plans). The business plan does have some extra bells & whistles, for example server calls from the front end last only for the duration of the call, but there is a business plan feature to let them persist between calls for the lifetime of the session. Never needed to use it myself.

I would direct an email to sales@anvil.works if you have any concerns and they’ll put you right.

Are there any any performance gains to be had in Anvil with 3.7 vs. 2.7?

Anvil runs Python 2.7 and Python 3.7 environments in the same way, and there are no performance differences introduced by Anvil. (Of course, 2.7 and 3.7 may have inherent performance differences unrelated to how they are running in Anvil. If performance is critical for you, I recommend profiling your code.)

@Nusnus - @david.wylie is correct about the Individual plan. They are almost the same except:

  • The Business plan has persistent Server Modules
  • On the Business plan, we will create a custom Style based on your specification
  • The Dedicated plan has SQL access to Data Tables (in addition to a dedicated storage/compute server).

Both Business and Dedicated allow 3 developers per account (and you can add more), plus higher load limits.

It seems I got my questions fully answered.
Thank you guys for the quick and full response.
What a great first impression, I am very pleased! :blush:

As to my plans with Anvil, I will probably make some POC to experience first hand the Anvil technology and based on that decide if Python 2.7 over the free plan is enough or do I really need the individual plan (or even run my small project over the free plan and migrate later once the income from that project will be able to fund the paid plan :wink: ).

P.S
Damn I love this awesome forum app. Very very cool!

3 Likes

Finally I can google it and find it: https://anvil.works/kb/python-versions.html
Nice !

P.S
Google used to find this discussion before…

2 Likes

Any idea when Py 3 will be available client-side? I keep forgetting about this and hitting SyntaxErrors and straining my brain to remember how Py 2 works!

1 Like

It largely follows the Skulpt project, so it will be when Skulpt catches up. Anvil co-founder @meredydd is also a major contributor to Skulpt, so maybe he’ll have some more insight?

1 Like

@meredydd I guess it’s time to update this page saying that now Python 3.6 is also supported in the free version :blush:

1 Like