簡體   English   中英

我的 python 模塊看不到其他模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM