2017-05-24 100 views
0

我想在脚本之间移动变量。我有两个脚本:script1.py和script2.py在脚本之间导入变量

在script1.py我使用sys.argv来创建一个名为国家的变量。 这个变量被导入到处理国家变量的script2.py中。问题是,当我尝试导入这个新变量回到 script1.py我得到以下错误:

from script2 import rule 
ImportError: cannot import name 'rule' 

我运行的是script1.py在终端

python script1.py us 

script1.py

import sys 
country = str(sys.argv[1]) 
from script2 import rule 
print (rule) 

script2.py

from script1 import country 
rule = 'this is a rule' + country 

谢谢!

+5

的可能重复[导入错误:无法导入名称X](HTTPS: //stackoverflow.com/questions/9252543/importerror-cannot-import-name-x) – cookiedough

+2

这是一个循环依赖进口的情况。检查出:[此链接](https://stackoverflow.com/questions/9252543/importerror-cannot-import-name-x) – cookiedough

+0

不知道这是100%的愚蠢。 –

回答

1

循环相关导入会引发ImportError。
修改脚本如下:

script1.py

import sys 
country = str(sys.argv[1]) 
from script2 import rule 
print(rule(country)) 

script2.py(只有一行)

rule = 'this is a rule{}'.format 
+0

这没有奏效。我一直得到相同的错误 – David

+0

但它在我的机器上工作。你的操作系统和你的Python版本是什么?使用python 3.6的 – williezh

+0

。 OS = MacOS Sierra。版本10.12.14 – David