FAQ
General
Why does the app take a while to start?
Pyodios runs Python through WebAssembly, which takes 5-15 seconds to load and initialize on first launch. Subsequent launches are faster because your device caches the initialized runtime. See Getting Started for what to expect on your first launch.
What devices does Pyodios support?
Pyodios runs on iPhone and iPad. On iPad, the app uses a multi-pane workspace layout with the Notebook, Editor, or Console alongside the Environment, Plots, Files, and Packages tabs. On iPhone, each tab is full-screen and accessible from the bottom tab bar.
Does the app need an internet connection?
Only for installing Python packages. All Python computation runs locally on your device, so you can write and run Python code completely offline.
Does my Python session persist between launches?
No. Each time you open Pyodios, a fresh Python session starts. Variables, imported packages, and console history from your previous session are not carried over. To preserve your work, save your code as .py files in the Editor or as .ipynb notebooks in the Notebook, and put import statements at the top of your scripts so packages load automatically when you re-run them.
How much memory can Python use?
Python has approximately 300 MB of memory available. For most interactive analysis, this is sufficient. If you run out of memory:
- Clear unused plots (Plots tab > Clear All)
- Restart the Python session
- Clear your environment
Notebooks
What notebook format does Pyodios use?
Pyodios uses the standard Jupyter .ipynb format (nbformat 5.10). Notebooks have full round-trip compatibility with JupyterLab, VS Code, and other tools that support the .ipynb format.
Can I use markdown cells?
Yes. Notebooks support both code and markdown cells with rendered preview. You can mix explanatory text with executable Python code in the same notebook.
Can I export notebooks?
Yes. Export notebooks to HTML from the notebook toolbar.
Editor and Files
How do I save my work?
In the Editor, use the file menu and choose Save. Notebooks auto-save as you work. Your saved .py files and .ipynb notebooks appear in the Files tab and persist between sessions.
Where are my files stored?
Files are stored in the app’s sandboxed storage on your device. They persist between sessions but are deleted if you uninstall the app. You can import and export files through the Files tab, which also integrates with the iOS Files app and iCloud Drive.
Why isn’t there a built-in git client?
Git is getting its own dedicated app: a separate companion that Pyodios will be able to link to and launch directly. Both apps will share files through iOS Files and iCloud Drive, so you can clone in the git companion, edit in Pyodios, and commit and push back, all on the same folder. Keeping git out of Pyodios means each tool can focus on doing one thing well instead of cramming both into a single app. No release date for the git companion yet.
Why do my quotes look different?
iOS sometimes inserts “smart quotes” (curly quotes) when typing. Pyodios automatically converts these to straight quotes that Python understands, so you shouldn’t notice any issues.
Running Code
Can I use matplotlib?
Yes! matplotlib is pre-loaded and ready to use. Plots appear in the Plots tab after you run code that produces graphics.
Can I use pandas?
Yes! Install pandas via the Packages tab or by running import micropip; await micropip.install("pandas") in the Console.
Can I use interactive plots (Plotly)?
Yes. Plotly, Bokeh, and Altair charts render interactively in a web view. Install the package you need from the Packages tab and create your visualization as you normally would.
Can I interrupt running code?
Currently, Python code cannot be interrupted once it starts executing. If you accidentally run a long-running operation, you may need to close and reopen the app. See Known Issues for more details.
Packages
Why can’t I find a package?
Not all PyPI packages have WebAssembly builds. Pure Python packages and those with Pyodide builds are supported. Most popular data science packages (numpy, pandas, scipy, scikit-learn, etc.) are available. Packages that depend on external system libraries are the most likely to be missing. Check pyodide.org for compatibility information.
Do installed packages persist?
Yes. Packages you install persist between app sessions via offline wheel caching and auto-restore on launch. However, you still need to import them each time you start a new session.
Other Apps
Is there an R version?
Yes! webRios is the R companion app for iOS. It uses the webR WebAssembly engine to run R locally on your iPhone and iPad.
Will Pyodios come to Android?
An Android port (working name Pyodroid) is on the roadmap. Since the underlying Pyodide runtime is WebAssembly, the Python core ports cleanly to any modern WebView, including Android’s. The bulk of the work is rebuilding the surrounding app shell. No release date yet.
Can I connect to a remote Jupyter server?
Yes! Pyodios supports connecting to remote Jupyter kernels for full CPython access. Configure servers in Settings.
Need More Help?
Check the Known Issues page for current limitations and workarounds, or visit the Support page to get in touch.
- Email: support@caffeinatedmath.com
- GitHub: open an issue to report a bug or request a feature