我正在编写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
中导入。因此,应该反映调用该函数之前的任何修改。但为什么这不会发生?