我正在使用一些用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脚本中运行,模块的内容都是相同的,并且在两种情况下都不应为空。
感谢您的任何启发!