pa
is a single command to manage PythonAnywhere services.
It is designed to be run from PythonAnywhere consoles, but many subcommands can be executed directly from your own machine (see usage below).
In a PythonAnywhere Bash console, run:
pip3.10 install --user pythonanywhere
If there is no python3.10
on your PythonAnywhere account,
you should upgrade your account to the newest system image.
See here how to do that.
pa
works with python 3.8, 3.9, and 3.10 but we recommend using the latest system image.
Install the pythonanywhere
package from PyPI.
We recommend using pipx
if you want to use it only as a cli tool, or a virtual environment
if you want to use a programmatic interface in your own code.
There are two ways to use the package. You can just run the scripts or use the underlying api wrappers directly in your scripts.
pa
expects the presence of some environment variables that are provided when you run your code in a PythonAnywere console.
You need to provide them if you run pa
on your local machine.
API_TOKEN
-- you need to set this to allow pa
to connect to the PythonAnywere API.
To get an API token, log into PythonAnywhere and go to the "Account" page using the link at the top right.
Click on the "API token" tab, and click the "Create a new API token" button to get your token.
PYTHONANYWHERE_SITE
is used to connect to PythonAnywhere API and defaults to www.pythonanywhere.com
,
but you may need to set it to eu.pythonanywhere.com
if you use our EU site.
If your username on PythonAnywhere is different from the username on your local machine,
you may need to set USER
for the environment you run pa
in.
Take a look at the pythonanywhere.task
module and docstrings of pythonanywhere.task.Task
class and its methods.
Some legacy scripts (separate for each action) are still available.
Pull requests are welcome! You'll find tests in the tests folder...
# prep your dev environment
mkvirtualenv --python=python3.10 helper_scripts
pip install -r requirements.txt
pip install -e .
# running the tests:
pytest
# make sure that the code that you have written is well tested:
pytest --cov=pythonanywhere --cov=scripts
# to just run the fast tests:
pytest -m 'not slowtest' -v