2016-12-25 94 views
0

我建立在Pycharm腳本時(姑且稱之爲SCRIPT1)調用另一個腳本(我們稱之爲SCRIPT2)接受參數的輸入Pycharm,導入錯誤不模塊名稱,使用使用os.system

SCRIPT2在它xlrdimport xlrd) 當我手動運行SCRIPT2,並給它需要的參數使用,它工作得很好

SCRIPT1,來電SCRIPT2(使用os.system())如下:

os.system("python script2 -param1 ..") 

,我得到這個錯誤:

from file script2

import xlrd

ImportError: No module named 'xlrd'

沒有人知道如何解決它?或使其正常工作?

我確信我給作爲輸入參數,他們是對的 和xlrd在項目定義解釋

非常感謝

+0

做這個錯誤只發生在pycharm中?當您手動運行script1時它是否工作,或者您得到相同的錯誤?如果它不工作比pycharm與它無關 – DorElias

+0

@DorElias,當我從pycharm運行script2時它工作得很好 –

回答

0

您可能調用了錯誤的python。如果在命令行工作運行python script2...,使用where python獲得的完整路徑,並用它調用os.system時,例如:

os.system("c:\pythons7\python script2 -param1 ..") 

(順便說一句 - It is recommended to replaceos.systemsubprocess.call或其他一些子功能)

+0

那裏調用script2!我認爲這是因爲我有2個安裝 –

+0

非常感謝,我還會考慮將'os.system'更改爲'call' , 謝謝 –

1

確保兩個文件都在同一個文件夾。你有多個python安裝/ virtualenv嗎?

一個更好的選擇,以詭計Python代碼被定義功能和導入它們:

#script2.py 
import xlrd 
def foo(): 
    print("I AM IN FOO NOW!") 

#script1.py 
import script2 
script2.foo() 

如果喲是肯定不同的進程調用SCRIPT2,可以考慮使用subprocess.check_output作爲稍好API。

+0

是的,它們在同一個文件夾中 我有2個安裝的python,python2.7和python3 和我不想使用函數,我想從script1 –

相關問題