我已经创建了这里提到的Pandas扩展。
扩展类定义在一个名为pd_extensions的模块中,我想在另一个模块中使用它们,例如my_module,这两个模块位于同一个名为source的包中。
当前能够使用扩展IM将pd_extensions模块导入my_module,如下所示:import source.pd_extensions
有没有办法不用导入模块就可以使用我创建的扩展?
我发现自己要将这个模块导入到包中每个我想使用扩展的模块中,我想可能有更好的方法(可能通过_ _ init _ 模块)。
我试着只使用扩展而不导入定义它们的模块,但显然不起作用。
我想把它导入到_ init _ _文件中,这样包中的所有模块都可以访问它,而不必自己导入它,但我不知道这是否可行。
2条答案
按热度按时间z5btuh9x1#
我认为你可以在
__init__
文件中导入扩展模块,因为扩展模块会先导入Pandas,然后注册访问器,因此Pandas模块会缓存在sys.modules
中,任何后续从其他模块导入Pandas的操作都会从缓存中检索条目。下面是一个简单的例子:
以下是这些文件的内容:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
现在,让我们通过执行
my_module.py
来测试代码,它可以按预期工作gzszwxb42#
是的,可以把它添加到Pandas的
__init__.py
中,然后导入Pandas,但是在你这么做之前,我会先创建一个虚拟环境。下面是如何使用conda来实现这一点
导航到
test_env
中的Pandas文件夹在我添加的
__init__.py
的底部现在你应该可以