Search code examples
pythondjangoedxopenedx

Adding new python libraries to Edx Studio


I'm working with OpenEdx and i want add new libraries for make new funtionalities.

I have the normal DevStack Edx environment (work in Docker).

I want add google-api-python-client for my project, so i added this package to: enter image description here

After rebuild the image and run the container i review this packages in respective containers:enter image description here

Where are my libraries? It only happen in Studio, in LMS all is well.

So: - Which is the correct external python packages installation's way?

Thank you!


Solution

  • I realised that the original image haven't all packages installed, and after to run the LMS commands in a copy of the original image the new image is different from the other image: in CMS copy we have a initial image without other change, because doesn't exist other change.

    So, for install the new requirements we created a new file for it where we apply the commands for install and migrate packages:

    set -e
    set -o pipefail
    set -x
    
    # Bring Studio online
    docker-compose $DOCKER_COMPOSE_FILES up -d studio
    
    docker-compose exec studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs'
    
    #Installing prereqs crashes the process
    docker-compose restart studio
    
    # Run edxapp migrations first since they are needed for the service users and OAuth clients
    docker-compose exec studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PREREQ_INSTALL=1 paver update_db --settings devstack_docker'
    
    docker-compose exec studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_assets --settings devstack_docker'
    

    It's all.