最近遇到一个问题,就是独立进程的python文件如何使用另外一个django工程中的一些配置文件,为了能确保配置相同而又不使得程序臃肿,查找了一些python引入自定义模块的方法。
首先要明确什么是python包,严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。如果没有__init__.py,那么就是普通的文件夹。所以我们导入的一定是我们自己预先写好的Python包。
1. 获取当前文件绝对路径:os.path.dirname(__file__)
2. 获取需要引入的Python的路径:os.path.join(os.path.dirname(__file__), '../utils').replace('\\', '/')
3. sys.path.append(os.path.join(os.path.dirname(__file__), '../utils').replace('\\', '/'))
这样我们自己的Python就可以引入指定的文件中了,之后就可以使用from...import 或者 import直接进行引用了。
例:自定义python包为utils,内还有config.py、__init__.py文件,我们当前使用的Python文件为views.py他们的目录结构为
apps
views.py
utils
__init__.py
config.py
在views中,我们写入如下程序即可
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '../utils').replace('\\', '/'))
import config