如何全局导入一些Python模块?

时间:2014-11-26 15:04:35

标签: python python-import python-module

在我的特定设置中,我有一组python模块,其中包含许多其他模块中使用的辅助功能。我把它们放到一个LIBS文件夹中,我在同一路径级别有其他文件夹,包括使用这些LIBS模块帮助完成某些工作的其他模块。目前,我为所有导入LIBS模块的模块执行此操作。

import sys
sys.path.insert(0, '../LIBS')

import lib_module1
import lib_module2
.... 

随着项目变大,这开始变得颈部疼痛。我需要为每个新模块为这些辅助LIBS模块写下大量的import语句。

有没有办法自动导入所有这些LIBS模块用于生活在同一路径文件夹中的LIBS文件夹中的其他模块?

2 个答案:

答案 0 :(得分:4)

为此,您可以使用

 __init__.py

请参考ModulesStackoverflow

答案 1 :(得分:0)

确实有!开始将LIBS模块视为安装在系统中的“真实”模块(或包),就像任何其他模块一样。

这意味着您必须编写setup.py脚本来安装代码。通常这是在您的开发目录中完成的,然后您的模块安装时使用:

$ sudo python setup.py install

这会将您的模块安装在系统上存储Python库的site-packages子目录下。

我建议首先复制其他人的工作setup.py和支持文件,然后修改以适合您的包。例如,这是my quoter module

公平警告:这是一个非常重要的一步。您不仅可以学习在本地部署模块,还可以根据需要在PyPI上发布模块。迁移到真正的包的步骤将鼓励您编写越来越多的标准文档,开发和运行更多测试,采用more rigorous version specifications,以更清楚地识别和定义代码依赖性,并采取许多其他“专业化”步骤。这些都会以更好,更可靠,更便携,更容易部署的代码来支付红利 - 但如果我不承认学习曲线有时会很陡峭,我就会撒谎。