question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Job Scheduling (shipyard-jmtask) Error Message: "ModuleNotFoundError: No module named 'ruamel'"

See original GitHub issue

I’m looking to create a scheduled job and have had no problem with the configuration in the past. Recently, I’ve had a problem with ‘shipyard-jmtask’ with nearly the same script (changes in environmental variables). The error associated with the task is:

2019-08-19 23:28:03,087Z DEBUG __main__:_create_credentials:109 creating batch client for account url: https://oippltanabatch410q.eastus2.batch.azure.com/
2019-08-19 23:28:03,098Z DEBUG __main__:main:245 loading pickled task map
Traceback (most recent call last):
  File "/opt/batch-shipyard/recurrent_job_manager.py", line 273, in <module>
    main()
  File "/opt/batch-shipyard/recurrent_job_manager.py", line 247, in main
    task_map = pickle.load(f, fix_imports=True)
ModuleNotFoundError: No module named 'ruamel'

Here is my configuration scripts for the scheduled job. Actual names are changed for security reasons.

config.yaml:

batch_shipyard:
  storage_account_settings: myBlobStorage
  storage_entity_prefix: shipyard
  generated_sas_expiry_days: null
  autogenerated_task_id:
    prefix: qa-task-
    zfill_width: 5
  delay_docker_image_preload: false
global_resources:
  docker_images:
    - repository.io/ETL_image:v1
    - repository.io/Modeling_image:v1

credentials.yaml

credentials:
  batch:
    account_key: ALl************************************************************
    account_service_url: https://**************.eastus2.batch.azure.com
  storage:
    MyBlobStorage:
      account: MyBlobStorage
      account_key: tM*************************************************************
      endpoint: core.windows.net     
  docker_registry:
    repo.azurecr.io:
      username: oip************
      password: rO*********************

job.yaml

job_specifications:
- id: myJobId
  auto_complete: true
  environment_variables:
    version: version 2019.08.21.12:00-2.0
    logging_level: INFO
    jobName: Myjob
    store_name: oip***********
    vault_uri: https://**********.vault.azure.net/
    app_id: b65**********************
    app_secret: Kw+**********************
    tenant_ID: c1e**********************
    parquet_filename: Release1_
  max_task_retries: 1
  max_wall_time: 24:00:00
  retention_time: 24:00:00
  priority: 100
  user_identity:
    default_pool_admin: false
  auto_pool:
    keep_alive: false
    pool_lifetime: job
  recurrence:
    schedule:
      do_not_run_after: null
      do_not_run_until: null
      recurrence_interval: 24:00:00
      start_window: null
    job_manager:
      allow_low_priority_node: true
      monitor_task_completion: true
      run_exclusive: false
  allow_run_on_missing_image: true
  remove_container_after_exit: true
  tasks:
  - id: etl_task
    docker_image: repository.io/ETL_image:v1
    environment_variables:
      server_address: oip******************.database.windows.net
      database_name: DatabaseName
      sql_secret_name: DatabaseAuthenticationSecret
      api_client_id: 62************************
      api_client_secret: d************************
      api_tenant_id: c************************
      api_authority_url: https://login.microsoftonline.com/c************************
      api_url: https://************************
      output_path: wsi/Release1/Input/
      input_path: /IOT/Measurement/
      prp_log_path: /PRP20/etl_logs/
      number_of_days_back: 7
      number_of_days_back_temperature: 60
      end_date_override: ''
      csv_header: '[...]'      
      result_design: '[...]'
    max_task_retries: 1
    max_wall_time: 10:00:00
    retention_time: 24:00:00
    output_data:
      azure_storage:
      - storage_account_settings: MyBlobStorage
        remote_path: output/dir
        local_path: null
        is_file_share: false
        blobxfer_extra_options: null   
    remove_container_after_exit: true
    additional_docker_run_options: [-w=/app]     
    default_working_dir: container
  - id: modeling_task
    docker_image: repository.io/Modeling_image:v1
    environment_variables:
      input_path: wsi/Release1/Input/Release1_
      output_path: wsi/Release1/Output
      file_name: RiskModelResult_  
      threshold: 0.4
      pickle_path: wsi/*
      client_secret: Kw+****************************
      client_ID: b65*****************
    max_task_retries: 1
    max_wall_time: 02:00:00
    retention_time: 24:00:00
    depends_on:
    - etl_task

pool.yaml

pool_specification:
  id: qa-pool
  vm_configuration:
    platform_image:
      publisher: microsoft-azure-batch
      offer: ubuntu-server-container
      sku: 16-04-lts
      version: latest
      native: false
      license_type: null
  vm_size: Standard_E2s_v3 
  vm_count:
    dedicated: 1
    low_priority: 0
  resize_timeout: 00:15:00
  inter_node_communication_enabled: false
  reboot_on_start_task_failed: false
  attempt_recovery_on_unusable: false
  upload_diagnostics_logs_on_unusable: true
  block_until_all_global_resources_loaded: true
  transfer_files_on_pool_creation: false

Any help with this is greatly appreciated!

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:7

github_iconTop GitHub Comments

1reaction
speschlcommented, Aug 30, 2019

Thanks @alfpark for the heads up about the sensitive info, I changed the secret out. I did try the environment variables with the strings and that seemed to work! The shipyard-jmtask completed and the other two task have begun. Thank you so much for your help!

0reactions
alfparkcommented, Aug 30, 2019

Ok, I was able to repro this.

To mitigate this before a hotfix, please ensure all of your environment variable values are strings (in yaml). For example, the threshold env var:

    environment_variables:
      input_path: wsi/Release1/Input/Release1_
      output_path: wsi/Release1/Output
      file_name: RiskModelResult_ 
      threshold: '0.4'   # <-- wrap in quotes to explicitly make a string
      pickle_path: wsi/*
      client_secret: Kw+****************************
      client_ID: b65*****************
Read more comments on GitHub >

github_iconTop Results From Across the Web

[Fixed] ModuleNotFoundError: No module named 'ruamel-yaml'
Quick Fix: Python raises the ImportError: No module named 'ruamel-yaml' when it cannot find the library ruamel-yaml . The most frequent source of...
Read more >
ModuleNotFoundError: No module named 'ruamel' · Issue #106
With certain new versions of pip and conda the ruamel.yaml installation fails. This is a problem with conda: conda/conda#10178.
Read more >
ModuleNotFoundError: No module named 'ruamel'
In my case, I was installing this with pip3 install ruamel.yaml , and it was puting the package in /usr/local/lib/python3.9/site-packages/ ...
Read more >
Fix ModuleNotFoundError: No module named 'ruamel' When ...
Upon seeing that seemingly innocuous code, you (at some point) install azureml.core from pypi using pip install like you're supposed to.
Read more >
1842439 – No module named 'ruamel' - Red Hat Bugzilla
Bug 1842439 - No module named 'ruamel' ... in <module> from ruamel import yaml ModuleNotFoundError: No module named 'ruamel' Usage: curator [OPTIONS] ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found