【问题标题】:ImportError: cannot import name - PythonImportError:无法导入名称 - Python
【发布时间】:2019-12-04 10:48:59
【问题描述】:

我正在尝试从另一个 python 文件中导入一些变量,该文件位于另一个 python 文件的同一目录中。

我有两个文件在同一个目录,如下:

constantvariables.py

test.py

这就是constantvariables.py 的样子

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()

这就是我的test.py 的样子:

import os 
from . import constantvariables


print(constantsvariables.NAMESPACE)

但我收到此错误:

Traceback(最近一次调用最后一次): 文件“test.py”,第 7 行,在 从 。导入常量变量 ImportError: 无法导入名称'constantsvariables'

有人可以帮帮我吗?

我正在使用的 Python 版本python 2.7.5

【问题讨论】:

  • constantvariables.py 与 constantsvariables.py ?
  • 你的文件被称为一件事,你的导入说另一件事。
  • @ChristianSloper 我更新了问题,但错误仍然存​​在。我正在使用python 2.7.5

标签: python


【解决方案1】:

制作类似constant.py的常量文件并放在config文件夹中以进行适当的管理。

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"

在您的基本目录中创建 main.py 文件并在其中调用常量。

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

【讨论】:

  • 我收到一个错误:无法解析导入config.constant
  • 在你的工作空间设置中,你可以像这样设置你的 python 路径: { "python.pythonPath": "/path/to/your/venv/bin/python", }
  • 我应该在哪里进行此更改?
  • @JananathBanuka 这个 IDE 问题,请根据 IDE google 一下你的错误。
【解决方案2】:

如果你想保持你的常量文件不变,你可以这样写:

import os 
from constantvariables import CONST

print(CONST.NAMESPACE)

【讨论】:

  • @JananathBanuka 文件必须位于同一文件夹中才能正常工作。如果它们位于不同的文件夹中,则必须更正导入。
  • 文件在同一个文件夹中,这不起作用。我应该设置python路径还是什么?
猜你喜欢
  • 1970-01-01
  • 2016-10-02
  • 2014-09-27
  • 2020-04-09
  • 2016-12-24
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多