我需要編寫一個python腳本來讀取和解析安裝python文件。 安裝程序包含一些變量和函數調用。解析python安裝文件
例如:
setup.py
x = 5
mylist [ 1, 2, 3]
myfunc(4)
myfunc(5)
myfunc(30)
main.py
.
parse_setup('setup.py')
.
我想解析安裝文件,並「看到」被定義什麼樣的變量和什麼樣的函數調用。 由於使用python編寫的安裝文件,我以爲最簡單的事情是動態導入安裝文件(動態,因爲安裝文件路徑是主要的輸入)。
問題是導入失敗,因爲myfucn()
,在setup.py
中調用,未定義。
有沒有辦法讓我攔截中的myfunc()
調用並執行我自己定義的函數main.py
?
如果我想執行的函數是一個成員函數呢?
任何人都可以想到一個更好的方式來提取設置文件中的數據,我真的不想逐行閱讀它。
謝謝!
如何安裝運行在所有的,如果myfunc()沒有定義?如果你只是想以python腳本格式進行良好的配置,可以將配置中使用的函數重構爲一個單獨的模塊,並從設置中導入。 –
如果它不是一個有效的python文件(即運行它會得到一個異常),那麼你將無法「導入」。你可以[閱讀](http:// stackoverflow。com/a/6475407/1240268)它像任何其他文本文件? –
這正是我想避免的。 setup.py實際上是一個由用戶填寫的文本文件。 設置文件是Python語言的原因是因爲它是大陸上定義變量和函數「調用」。 myfunc()只是用戶希望main.py執行的操作的描述。 – idanshmu