【问题标题】:How to import variables in a different python file如何在不同的python文件中导入变量
【发布时间】:2020-03-29 06:26:16
【问题描述】:

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

我已经尝试了几个小时,但仍然无法使用变量。

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

const.py

test.py

这就是const.py 的样子

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"

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

import os 
from . import constant

print(constant.FOO)

我得到的错误:

ImportError: 尝试在没有已知父包的情况下进行相对导入

为什么用 Python 做这件事这么难?

【问题讨论】:

  • from const import FOO
  • 从常量导入 *
  • @luigigi 这些不起作用。它们中的任何一个都不起作用
  • 那么你应该检查你的工作目录
  • 它们在同一个目录中。两个文件都在同一个目录中。为什么它不起作用?这不适用于python 2.7.5 版本吗?

标签: python


【解决方案1】:

如果您想按原样获取所有变量语句,您应该这样做:

from const import *

print(FOO)
print(NAMESPACE)

如果你想在模块名(文件名)下导入变量,你应该这样做:

import const

print(const.FOO)
print(const.NAMESPACE)

如果你想导入模块名下的变量,但又想用constant访问:

import const as constant

print(constant.FOO)
print(constant.NAMESPACE)

文件名就是模块名。

【讨论】:

  • 这里提到的任何东西都不起作用。我应该设置python路径还是什么?
  • 如果const.py和test.py在同一个目录下应该没有问题。
  • 它们在同一个文件夹/目录中仍然不起作用。这和python 版本有关系吗?我正在使用python 2.7.5
  • 我觉得没关系,但你可以用这个检查当前目录:print(os.getcwd())
  • 我刚刚发现这个python运行在pycharm和virtuaenv
【解决方案2】:

test.py 应该是这样的:

from const import FOO

print(FOO)

【讨论】:

  • 不工作。我不知道为什么。我应该设置python路径还是什么?
猜你喜欢
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2019-09-09
  • 2021-11-12
  • 2021-07-01
相关资源
最近更新 更多