获取AttributeError:仅当使用os.system

时间:2019-08-14 08:37:06

标签: python

我正在使用一些用python 2编写的代码作为黑盒,并尝试从python 3的一个脚本中调用它。当我在python 2中与命令行分开运行黑盒代码时,是否可以正常工作。但是,当我尝试从python 3中的脚本运行它时,我一直在获取AttributeError:'module'对象没有某个模块的属性。

我试图同时使用os.system和subprocess.call来调用我的python 2脚本。我正在使用miniconda,因此我在调用脚本时提供了实际python 2 exec的完整路径。

我将要导入的模块的路径添加到sys.path,但它不起作用。

我试图将模块“ config”的名称更改为一个假的“ onfig”,但出现另一个错误,提示我无法导入模块,这意味着可以找到模块“ config”,但是以某种方式导入后为空。

如果直接从终端运行它,我会得到

如果我直接从终端运行python 2代码,并打印出模块“ config”的内容,我就会得到

['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'adagrad_init_acc', 'batch_size', 'beam_size', 'cov_loss_wt', 'decode_data_path', 'emb_dim', 'eps', 'hidden_dim', 'in_dir_path', 'is_coverage', 'log_root', 'lr', 'lr_coverage', 'max_dec_steps', 'max_enc_steps', 'max_grad_norm', 'max_iterations', 'min_dec_steps', 'os', 'out_dir_path', 'pointer_gen', 'rand_unif_init_mag', 'root_dir', 'trunc_norm_init_std', 'use_gpu', 'vocab_path', 'vocab_size']

但是如果我从python 3脚本运行python 2代码,该模块仍然可以导入,但是现在如下所示为空。

['__builtins__', '__doc__', '__file__', '__name__', '__package__']

我希望无论模块是直接从终端运行还是在python 3脚本中运行,模块的内容都是相同的,并且在两种情况下都不应为空。

感谢您的任何启发!

0 个答案:

没有答案