In my test development to date, seems the OrderedDict and the csv modules are not available in the free subscription. I realize you must draw a line somewhere.
I found the list of package https://anvil.works/docs/server/packages and I see the statement “Due to running costs, Free Plan users can’t enable the Full Python interpreter.”. Again, understood.
If a subscriber is considering an Individual Upgrade:
Which full python interpreter would he have – Anaconda, for instance?
You can’t manage your own environment on the server module like you might with Conda on your own server. You have access to the packages and version listed on the page you found.
If you need a package that’s not currently available you can request that it be installed.
If you are making a “client” app that you would sell access to that’s great. Anvil has a users module and supports payments via Stripe (or you can implement your own via another API). The limitation on the plans are for compute and developer accounts.
If you would like to manage your own environment you can always use the open source app server and host it however you would like. In this case you would have complete control over the environment and database.
In my opinion, Anvil having server environments like this makes development much simpler and faster. If there is a package that is missing it can be installed. Otherwise you are working on a known set of very useful packages.
I’ve made everything from simple CRUD apps to ML inference apps to Kaggle-style ML competition sites with the packages on Anvil’s server modules. Is there something missing from the server that you really need?
OrderedDict is in Pythons collections module and is available even on the basic Python 3 server module. You can import it as so:
from collections import OrderedDict
The csv package and pandas are only available on the Full Python 3 environment it seems. I use pandas extensively in many of my apps so I can confirm it works.
If you are on the free tier you can still use an Uplink, which allows you to call code from a remote machine. This remote machine can have any environment you want.