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