• storm_koala@beehaw.org
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    11 months ago

    This script has two python modules as requirements, libevdev and inquirer. If you want to run the script with your systemwide python environment, you can try to find the relevant APT packages (often named python-MODULENAME) to install the modules on your system.

    Alternatively you can create a python virtual environment (you can easily find howtos) and install the requirements in the virtual environment using the pip tool. This way, the requirements will be installed for this project only.

    Also keep in mind to never use pip as sudo, it should not manage your systemwide python modules because it will conflict with your package manager.

  • NateSwift@beehaw.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    11 months ago

    Disclaimer: I’m on mobile, please excuse and terrible formatting

    The issue that you’re running into is that the Python module “libevdev” isn’t installed.

    The traditional “best practice” for installing python modules is to create a python virtual environment (venv) for each project so they can have different versions of the same module. However, this will make running the script/program a little less convenient. I’ll include instructions for both, you only need to follow one.

    With a Virtual Environment

    The first thing we’ll want to do is create a virtual environment. This will let us install modules that don’t mess with the rest of the system.

    All of these commands should be run in the root folder of the application (the folder that src is inside of). Run the following command to create a folder (.venv) the virtual environment will be stored in.

    python -m venv .venv

    Next, we’ll want to activate the virtual environment. This needs to be done every time you run the application. If you’re using the bash shell the following command will active the virtual environment. (The bash shell is the default in Ubuntu. If you haven’t changed it this what you want)

    source .venv/bin/activate

    Now that we’ve created and activated a virtual environment, we can install the missing package.

    The repository you linked has a requirements.txt file we can use to install all the required modules without typing them out by hand. This can be done using pip and the ”-r” flag.

    pip install -r requirements.txt

    Now that everything is installed, you should be able to run the application as normal with:

    sudo python -m src

    If you close your terminal window, you’ll have to reactivate the virtual environment the next time you want to run the script/program. You can also write a bash script to do this for you.

    Without a Virtual Environment

    If you don’t want to setup a virtual environment, you can install the modules user wide. This will make it so the installed packages are available every time you run python. You can do this with pip as follows. Make sure to run this command in the root folder of the application (the folder src is in)

    pip install -r requirements.txt

    You should then be able to run the script/program as you did before with

    sudo python -m src