How to set up your python development environment on AWS?

Setting up a Python development environment on AWS involves installing required tools, creating a virtual environment, and configuring AWS Elastic Beanstalk for deployment. This guide covers the complete setup process from installation to deployment.

Prerequisites

You need to have Python, pip, virtualenv, AWS EB CLI and a SSH client installed to set up your Python Development Environment on AWS. You can follow instructions at http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html to install these tools.

Creating a Virtual Environment

Once you have all tools installed, you need to set up a virtual environment so that your global packages do not get polluted. Use the following command to set up a virtual environment −

$ python -m venv /tmp/hello-world

For Python 2.7 (legacy), you can use −

$ virtualenv -p python2.7 /tmp/hello-world
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /tmp/hello-world/bin/python2.7
Also creating executable in /tmp/hello-world/bin/python
Installing setuptools, pip...done.

Activating the Virtual Environment

Once your virtual environment is ready, start it by running the activate script located in the environment's bin directory. For example, to start the hello-world environment created in the previous step −

$ source /tmp/hello-world/bin/activate

On Windows, use −

$ /tmp/hello-world/Scripts/activate

Once created, you can restart the virtual environment at any time by running its activate script again.

Creating Requirements File

To configure a Python application for deployment, from within your virtualenv, return to the top of your project's directory tree and create a requirements.txt file that contains your app's requirements (third party modules you are importing) with their version numbers −

Flask==2.3.2
Jinja2==3.1.2
Werkzeug==2.3.6
certifi==2023.5.7
chardet==5.1.0
requests==2.31.0

Alternatively you can use pip to get all installed packages from your machine to the requirements.txt file −

$ pip freeze > requirements.txt

This allows AWS to replicate your application's Python environment using the same packages and same versions that you used to develop and test your application.

Configuring AWS Elastic Beanstalk

Now configure AWS EB CLI repository with the 'eb init' command −

$ eb init -p python-3.9 hello-world

This command creates a new application named hello-world and configures your local repository to create environments with the latest Python 3.9 platform configuration.

Setting Up SSH Access

Run eb init again to configure a default keypair so that you can connect to the EC2 instance running your application with SSH −

$ eb init
Do you want to set up SSH for your instances?
(y/n): y
Select a keypair.
1) my-keypair
2) [ Create new KeyPair ]

Select a key pair if you have one already, or follow the prompts to create a new one. If you don't see the prompt or need to change your settings later, run eb init -i.

Deploying Your Application

Create an environment and deploy your application to it with eb create −

$ eb create hello-env

This command creates a load balanced Elastic Beanstalk environment named hello-env and deploys your application.

Managing Your Environment

You can use additional EB CLI commands to manage your environment −

$ eb status          # Check environment status
$ eb open           # Open application in browser
$ eb deploy         # Deploy updated application
$ eb terminate      # Terminate environment

Conclusion

Setting up Python development environment on AWS requires creating virtual environments, managing dependencies with requirements.txt, and using AWS EB CLI for deployment. This setup ensures consistent and scalable Python applications on AWS infrastructure.

Updated on: 2026-03-24T17:04:48+05:30

506 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements