Installing new modules

Installing Python modules on PythonAnywhere

Your account has many modules already installed. You can install new modules into PythonAnywhere by using a Bash Console

1. Using the --user flag

To install a package into your account so that your Python programs can see it by default, use one of the pip commands. There is one for each Python version: pip2.7 installs modules for Python 2.7, pip3.6 installs modules for Python 3.6, and so on. Modules that you install for one Python version are not visible from others, so it's important to use the right one.

Example: to install the pwhich module for Python 3.6, you'd run this in a Bash console (not in a Python one):

pip3.6 install --user pwhich

Please note, the command line option before the module name is quite literally --user, you don't need to replace it with your username, or to add your username to the command line!

Do let us know if there are any packages you think should be part of our standard "batteries included" -- just use the "Send feedback" link above, or send us a message at support@pythonanywhere.com.

2. Using a virtualenv

We've also included virtualenv and virtualenvwrapper, so if you create a virtualenv you can install whatever versions of various packages you want to. However, in a virtualenv, the --user mentioned above is not needed. In fact using --user will cause an error in a virtualenv.

You can specify which Python version to use for your virtualenv using the --python option. So, to create a new Python 3.10 virtualenv, run this command:

$ mkvirtualenv my-virtualenv --python=python3.10

...or similarly for other python versions

Once you're in a virtualenv, to install packages you can just use pip with no Python version number or --user flag:

(my-virtualenv) $ pip install pwhich

We recommend that in any Python 2.7 virtualenv you create, you install the following security fix packages:

(my-virtualenv) $ pip install urllib3[secure] pyopenssl ndg-httpsclient pyasn1

These should make sure that your code can make access external websites without security warnings.

Using virtualenvs in web apps

You need to enter the location of your virtualenv on the "Web" tab to use it in a web app. Check out the example here

3. Installers that print out excessive amounts

Some packages, when they are installing, print out huge amounts of stuff, and that can cause problems -- you'll get an error saying this:

Your console is printing so much that it's interfering with other users, so it has been closed

To avoid this, you can add the -q command-line flag to your pip command.

4. Installing non-Python packages

You don't have root access to the computers where your code runs on PythonAnywhere, so you can't use tools like apt to install packages. However, for non-Python tools that can be downloaded and compiled from source using make, there are some tricks that will often work.