2017-05-24 99 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