[英]RuntimeWarning: A class named 'Individual' has already been created and it will be overwritten
我有使用deap
庫的代碼。 這段代碼已經在虛擬環境中運行了一段時間,沒有任何問題。 然后我將整個環境復制到一個新的虛擬 envronemnt 並運行代碼,我開始收到運行時錯誤:
/usr/local/lib/python3.6/dist-packages/deap/creator.py:141: RuntimeWarning: 一個名為“Individual”的類已經被創建,它將被覆蓋。 考慮刪除該類的先前創建或重命名它。
運行時警告)
新舊環境中使用的數據完全相同,返回的結果看起來也一樣。 我找不到任何可以恰當地描述為什么會發生此運行時錯誤的內容 - 為什么會發生?
您的問題是關於兩個版本之間可能有什么不同。 如果您想要有用的答案,我會禮貌地建議您需要向用戶社區提供更多信息。 在我的腦海里,這里有一些可能性:
我最好的猜測是選項 3。如果您查看https://github.com/DEAP/deap/blob/master/deap/creator.py第 141 行,您將看到以下代碼:
if name in globals():
warnings.warn("A class named '{0}' has already been created and it "
"will be overwritten. Consider deleting previous "
"creation of that class or rename it.".format(name),
RuntimeWarning)
因此,當您運行create
,該函數會調用globals()
函數並查找任何已命名為您想要為類命名的變量。 在您的情況下,有一個名為Individual
的預先存在的類。 要確定原因可能需要查看您的代碼。
當您運行 DEAP 庫時,它會創建一個 Individual 類。 如果你運行它兩次,那么它會覆蓋之前定義的 Individual 類。 在您的新環境中,一路上的某個地方,您運行了兩次 DEAP。
關於打印輸出的不同行為表明您的環境實際上並不相同。 可能 DEAP 的版本不同。 您可以檢查deap.__version__
變量並進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.