Install the Amazon IoT Device SDK for Python - Amazon IoT Greengrass
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Amazon IoT Greengrass Version 1 entered the extended life phase on June 30, 2023. For more information, see the Amazon IoT Greengrass V1 maintenance policy. After this date, Amazon IoT Greengrass V1 won't release updates that provide features, enhancements, bug fixes, or security patches. Devices that run on Amazon IoT Greengrass V1 won't be disrupted and will continue to operate and to connect to the cloud. We strongly recommend that you migrate to Amazon IoT Greengrass Version 2, which adds significant new features and support for additional platforms.

Install the Amazon IoT Device SDK for Python

Client devices can use the Amazon IoT Device SDK for Python to communicate with Amazon IoT and Amazon IoT Greengrass core devices (using the Python programming language). For more information, including requirements, see the Amazon IoT Device SDK for Python Readme on GitHub.

In this step, you install the SDK and get the basicDiscovery.py sample function used by the simulated client devices on your computer.

  1. To install the SDK on your computer, with all required components, choose your operating system:

    Windows
    1. Open an elevated command prompt and run the following command:

      python --version

      If no version information is returned or if the version number is less than 2.7 for Python 2 or less than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+ or Python 3.3+. For more information, see Using Python on Windows.

    2. Download the Amazon IoT Device SDK for Python as a zip file and extract it to an appropriate location on your computer.

      Make a note of the file path to the extracted aws-iot-device-sdk-python-master folder that contains the setup.py file. In the next step, this file path is indicated by path-to-SDK-folder.

    3. From the elevated command prompt, run the following:

      cd path-to-SDK-folder python setup.py install
    macOS
    1. Open a Terminal window and run the following command:

      python --version

      If no version information is returned or if the version number is less than 2.7 for Python 2 or less than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+ or Python 3.3+. For more information, see Using Python on a Macintosh.

    2. In the Terminal window, run the following commands to determine the OpenSSL version:

      python >>>import ssl >>>print ssl.OPENSSL_VERSION

      Make a note of the OpenSSL version value.

      Note

      If you're running Python 3, use print(ssl.OPENSSL_VERSION).

      To close the Python shell, run the following command:

      >>>exit()

      If the OpenSSL version is 1.0.1 or later, skip to step c. Otherwise, follow these steps:

      1. From the Terminal window, run the following command to determine if the computer is using Simple Python Version Management:

        which pyenv

      If a file path is returned, then choose the Using pyenv tab. If nothing is returned, choose the Not using pyenv tab.

      Using pyenvNot using pyenv
      Using pyenv
      1. See Python Releases for Mac OS X (or similar) to determine the latest stable Python version. In the following example, this value is indicated by latest-Python-version.

      2. From the Terminal window, run the following commands:

        pyenv install latest-Python-version pyenv global latest-Python-version

        For example, if the latest version for Python 2 is 2.7.14, then these commands are:

        pyenv install 2.7.14 pyenv global 2.7.14
      3. Close and then reopen the Terminal window and then run the following commands:

        python >>>import ssl >>>print ssl.OPENSSL_VERSION

        The OpenSSL version should be at least 1.0.1. If the version is less than 1.0.1, then the update failed. Check the Python version value used in the pyenv install and pyenv global commands and try again.

      4. Run the following command to exit the Python shell:

        exit()
      Not using pyenv
      1. From a Terminal window, run the following command to determine if brew is installed:

        which brew

        If a file path is not returned, install brew as follows:

        /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
        Note

        Follow the installation prompts. The download for the Xcode command line tools can take some time.

      2. Run the following commands:

        brew update brew install openssl brew install python@2

        The Amazon IoT Device SDK for Python requires OpenSSL version 1.0.1 (or later) compiled with the Python executable. The brew install python command installs a python2 executable that meets this requirement. The python2 executable is installed in the /usr/local/bin directory, which should be part of the PATH environment variable. To confirm, run the following command:

        python2 --version

        If python2 version information is provided, skip to the next step. Otherwise, permanently add the /usr/local/bin path to your PATH environment variable by appending the following line to your shell profile:

        export PATH="/usr/local/bin:$PATH"

        For example, if you're using .bash_profile or do not yet have a shell profile, run the following command from a Terminal window:

        echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

        Next, source your shell profile and confirm that python2 --version provides version information. For example, if you're using .bash_profile, run the following commands:

        source ~/.bash_profile python2 --version

        python2 version information should be returned.

      3. Append the following line to your shell profile:

        alias python="python2"

        For example, if you're using .bash_profile or do not yet have a shell profile, run the following command:

        echo 'alias python="python2"' >> ~/.bash_profile
      4. Next, source your shell profile. For example, if you're using .bash_profile, run the following command:

        source ~/.bash_profile

        Invoking the python command runs the Python executable that contains the required OpenSSL version (python2) .

      5. Run the following commands:

        python import ssl print ssl.OPENSSL_VERSION

        The OpenSSL version should be 1.0.1 or later.

      6. To exit the Python shell, run the following command:

        exit()
    3. Run the following commands to install the Amazon IoT Device SDK for Python:

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-python.git cd aws-iot-device-sdk-python sudo python setup.py install
    UNIX-like system
    1. From a terminal window, run the following command:

      python --version

      If no version information is returned or if the version number is less than 2.7 for Python 2 or less than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+ or Python 3.3+. For more information, see Using Python on Unix platforms.

    2. In the terminal, run the following commands to determine the OpenSSL version:

      python >>>import ssl >>>print ssl.OPENSSL_VERSION

      Make a note of the OpenSSL version value.

      Note

      If you're running Python 3, use print(ssl.OPENSSL_VERSION).

      To close the Python shell, run the following command:

      exit()

      If the OpenSSL version is 1.0.1 or later, skip to the next step. Otherwise, run the command(s) to update OpenSSL for your distribution (for example, sudo yum update openssl, sudo apt-get update, and so on).

      Confirm that the OpenSSL version is 1.0.1 or later by running the following commands:

      python >>>import ssl >>>print ssl.OPENSSL_VERSION >>>exit()
    3. Run the following commands to install the Amazon IoT Device SDK for Python:

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-python.git cd aws-iot-device-sdk-python sudo python setup.py install
  2. After the Amazon IoT Device SDK for Python is installed, navigate to the samples folder and open the greengrass folder.

    For this tutorial, you copy the basicDiscovery.py sample function, which uses the certificates and keys that you downloaded in Create client devices in an Amazon IoT Greengrass group.

  3. Copy basicDiscovery.py to the folder that contains the HelloWorld_Publisher and HelloWorld_Subscriber device certificates and keys.