ModuleNotFoundError : No module named with locust

When I try to import external library of my project in my locust python file, each time I have the error "ModuleNotFoundError : No module name ‘…’.

Apparently is not clear but locust is installed and works.
I have a task to make REST API call and it’s ok.
But I need to make some action in the init method coming from external file of my project

Example :

I want to import the method "generateILogsToken" in my locust file from _Global.py file

FILE : getWalletInfoLocust.py

from Phoenix.APIs._Global import generateIlogsToken
from locust import HttpUser, task

class ApiUser(HttpUser):

    def __init__(self, environment):
        print("__init__" + generateIlogsToken())
        super().__init__(environment)


    @task
    def profile(self):
        url = "/restapi/json/v1/resources"
        self.client.get(url, verify=False, headers={'AUTHTOKEN': 'xxxxx'})

Error generated with the command locust -f getWalletInfoLocust.py

...
    from Phoenix.APIs._Global import generateIlogsToken
ModuleNotFoundError: No module named 'Phoenix'

I have this issue for any method imported from external file of my project.
When I’m used behave or other, no isse. It’s only with locust.

Thx

>Solution :

I am not sure, but I think the problem could be related to the fact that you launch your program in a folder that is not the root folder of your project.

Let’s say you have a directory tree like this:

project_directory
│   getWalletInfoLocust.py  
│   ... 
└───Phoenix 
│   │   ...   
│   └───APIs   
│   │   │   _Global.py
│   │   │   ...

When launching the command, python will look for the Phoenix folder from the folder you are launching python from.

To be sure the module is found, you should launch locust -f getWalletInfoLocust.py from the directory that I called "project_directory" in my example, otherwise python could not find the module Phoenix.

Alternatively you can add Phoenix directory to sys.path in your file, like this:

import sys, os
sys.path.append('path/to/project_directory')

Leave a Reply