python:导入混乱

时间:2016-05-17 09:43:45

标签: python

我正在编写python代码并轻松创建自己的包。但是感到困惑。 我的目录结构如下:

testing_validate.py
lib/
    conf.py
    logs.py
    validate_files/
        validate_tls_config_file.py
        __init__.py

在这里,testing_validate.py是这样的:

#!/usr/bin/python

import os
import sys

path = os.path.abspath('./lib')    #gets you absolute path of the library
sys.path.insert(0, path)        #you can insert that path(taken above) in the PATH variable of the system

import conf
conf.LOG_FILE_NAME = "/var/log/ConfigTLS.log"

from validate_files import validate_tls_config_file
#conf.LOG_FILE_NAME = "/var/log/ConfigTLS.log"

if validate_tls_config_file.validate_tls_config_file(conf.CONFIG_FILE_LOCATION) == False:
    print "Check log file for error: ", conf.LOG_FILE_NAME

conf.py内,我有:

LOG_FILE_NAME = ""

validate_tls_config_file.py内,我正在对某个文件执行一些验证。内容:

import conf
from logs import *
import os

@log_procedure_call
def validate_tls_config_file(file_path):

混淆在文件testing_validate.py中。在这里,当我在conf.LOG_FILE_NAME = "/var/log/ConfigTLS.log"之后和import conf之前使用from validate_files import validate_tls_config_file时,变量将被初始化。但相反,如果我在conf.LOG_FILE_NAME = "/var/log/ConfigTLS.log"之后使用from validate_files import validate_tls_config_file(如上所示),则变量的值不会反映在validate_tls_config_file中。

根据我的理解,这应该是双向的。该变量也在validate_tls_config_file.py中导入。因此,应该反映调用该函数之前的任何修改。但为什么这不会发生?

0 个答案:

没有答案