執行Python代碼(含模塊)我有一個非常具體的問題。我想在執行的python腳本(從python字符串)中調用一個Python函數,該腳本一開始就包含導入。從字符串
聽起來很複雜,但事實並非如此。我想要做的是這樣的:
x = """import os
def test():
print(os.curdir)
"""
exec(x)
test()
這工作在終端(IPython中與CPython的),但它並沒有一個實際的Python腳本里面工作。它不會工作,因爲它說OS不是進口,所以我想這是因爲OS被導入到被丟棄的範圍,當我把它從腳本它沒有操作系統進口。
我有其他的方式,我可以去解決這個惱人的問題,但它們都包括寫入(在我的腳本這是不可接受的)文件到硬盤。
UPDATE
對不起,顯然,如果你調用exec和測試從功能這個問題只發生
例如:
x = """import os
def test():
print(os.curdir)
"""
def mytest():
exec(x)
test()
mytest()
另外一個工作很顯然,這是毫無意義一切爲了我。
我有關於Python 2.7.6和Python 3.2.3運行此代碼沒有問題。 – syntagma 2014-11-22 17:29:57
我更新了問題,謝謝。 – Smarties89 2014-11-22 18:37:34