[英]My python module does not see other modules
我有一個包含 2 個文件的文件夾。
import_test.py
main.py.
這是 import_test.py 的內容:
def some_function():
df = pd.DataFrame({'col_1': [1,2,3],
'col_2': [1,2,3]})
return df
以下是 main.py 的內容:
import import_test
import pandas as pd
import importlib
importlib.reload(import_test)
import_test.some_function()
當我執行import_test.some_function()
時,我收到以下錯誤:
NameError: name 'pd' is not defined
我想我可以通過在我的import_test.py
文件中添加import pandas as pd
來解決這個問題,但這對我來說似乎是多余的,因為main.py
已經有了 pandas 的導入語句。 有沒有辦法避免冗余?
您必須在使用它們的地方導入模塊。 當您使用import
關鍵字時,無論您導入什么,都將綁定到當前模塊的全局命名空間。
所以這並不是你的模塊無法相互看到的問題,更多的是你在錯誤的位置導入了熊貓。 如果你在使用它的地方導入它,你可以從你的主模塊中刪除 pandas 導入。
對於它的價值,C.Nivs 說模塊加載器只會加載 pandas 一次是正確的,即使你多次導入它,所以冗余在這方面並不是什么大問題。
您可以嘗試將pd
傳遞給函數,然后在調用函數時將pd
提供給該函數。
導入測試.py :
def some_function(pd):
df = pd.DataFrame({'col_1': [1,2,3],
'col_2': [1,2,3]})
return df
主程序
import import_test
import pandas as pd
import importlib
importlib.reload(import_test)
import_test.some_function(pd)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.