Jananath Banuka
Jananath Banuka

Reputation: 3873

ImportError: cannot import name - Python

I am trying to import some variables from a different python file resides in the same directory from a another python file.

I have two files in the same directory as below:

constantvariables.py

test.py

This is how constantvariables.py looks like

class CONST(object):
    FOO = 1234
    NAMESPACE = "default"
    DEPLOYMENT_NAME = "deployment-test"
    DOCKER_IMAGE_NAME = "banukajananathjayarathna/bitesizetroubleshooter:v1"
    SERVICE_CLUSTER = "deployment-test-clusterip"
    SERVICE_NODEPORT = "deployment-test-nodeport"
    INGRESS_NAME = "deployment-test-ingress"

    def __setattr__(self, *_):
        pass

CONST = CONST()

and this is how my test.py looks like:

import os 
from . import constantvariables


print(constantsvariables.NAMESPACE)

But I get this error:

Traceback (most recent call last): File "test.py", line 7, in from . import constantsvariables ImportError: cannot import name 'constantsvariables'

can someone please help me?

Python version I am using python 2.7.5

Upvotes: 2

Views: 2827

Answers (2)

Exiknox
Exiknox

Reputation: 1

If you want to keep your constant file as it is, you can write this:

import os 
from constantvariables import CONST

print(CONST.NAMESPACE)

Upvotes: 0

Chandan Kumar
Chandan Kumar

Reputation: 889

Make constant file like that constant.py and put inside config folder for proper management.

FOO = 1234
NAMESPACE = "default"
DEPLOYMENT_NAME = "deployment-test"
DOCKER_IMAGE_NAME = "banukajananathjayarathna/bitesizetroubleshooter:v1"
SERVICE_CLUSTER = "deployment-test-clusterip"
SERVICE_NODEPORT = "deployment-test-nodeport"
INGRESS_NAME = "deployment-test-ingress"

Inside your base directory create main.py file and call the constant inside that.

import os 
from config.constants import NAMESPACE, FOO
print(NAMESPACE)

Upvotes: 1

Related Questions