简介:
我有一个存储特定凭据的.ini文件( A )。有多个脚本( B ) - python,php等 - 它将这个.ini文件( A )解析为变量,并且与...相同。 ini文件( A )。其他目录( C )位于.ini文件( A )和解析脚本( B )的另一个目录(不是子目录)下NOT驻留导入/包含这些解析脚本( B )以利用已解析的凭据变量。
但是,当我尝试使用“sudo python< _( C 运行python脚本( C )时,我收到此错误”ConfigParser.NoSectionError“ EM>)_> py“为
。
运行“sudo python” / interactive python,并在.ini文件的目录中导入python解析脚本( B )( A )和( B ),我能够访问已解析的凭证变量。
问题:
我究竟做错了什么?我认为这是一个许可问题
文件夹树:
FOLDER_0
- > Sub_Folder_0
- >( A 的)
- >(乙)
- > Sub_Folder_1
- >( C )
( A 的)
[Host]
ip = 111.111.1.222
[Schema]
name = Derp_A_Der
[User]
name = root
password = SexysBack
( B )
import ConfigParser as CP;
config = CP.ConfigParser();
config.read("B.ini");
m_p = config.get("User", "password");
m_h = config.get("Host", "ip");
m_n = config.get("Schema", "name");
m_u = config.get("User", "name");
( C )
import sys;
import os;
mysql_config_path = "/Folder_0/Sub_Folder_0/";
sys.path.append( os.path.abspath(mysql_config_path) );
import mysqlConfig as myC;
print myC.m_u;
答案 0 :(得分:0)
当找不到配置文件时,将使用空数据集,因此会出现异常 NoSectionError 在使用
运行脚本之前,您应该将目录更改为配置文件所在的位置os.chdir(mysql_config_path)
或使用目标脚本中的完整路径(在config.read()中)
答案 1 :(得分:0)
感谢 pmod ,我意识到自己犯了一个愚蠢的错误。我还在_Sub_Folder_1 _。
解决方案1 :
将( C )更改为...
import sys;
import os;
mysql_config_path = "/Folder_0/Sub_Folder_0/";
os.chdir(mysql_config_path);
sys.path.append( os.path.abspath(mysql_config_path) );
import mysqlConfig as myC;
print myC.m_u;
解决方案2 :
将( B )更改为...
import ConfigParser as CP;
config = CP.ConfigParser();
config.read("/Folder_0/Sub_Folder_0/B.ini");
m_p = config.get("User", "password");
m_h = config.get("Host", "ip");
m_n = config.get("Schema", "name");
m_u = config.get("User", "name");