django如何加载外部文件(环境:pycharm python2.7 django1.11)
有一份新的文件夹名为:py_aiplat_demo,内含有多个文件夹(SDK,demo,data)。
1.把文件考到项目的下面,不是app下面。
如果你想使用里面的文件夹SDK此模块,首先你必须把它变成一个包,即内含有__init__.py文件,如果没有,就新建一个,其它一样
2.下面部分分为两种方法
一.
把py_aiplat_demo整个文件夹提升为蓝色文件,pycharm里的项目中,点击该文件夹,右键选择Mark Directory as 里选择sources root
再setting文件里,添加以下句子
sys.path.insert(0, os.path.join(BASE_DIR,'py_aiplat_demo/SDK'))
即可引用文件夹SDK下面的py文件,就可以引入SDK(例:import SDK),如果是下这样写
sys.path.insert(0, os.path.join(BASE_DIR,'py_aiplat_demo'))
这个可以引用py_aiplat_demo下所有含有__init__.py文件夹,
二.
一样,要把py_aiplat_demo整个文件夹提升为蓝色文件,pycharm里的项目中,点击该文件夹,右键选择Mark Directory as 里选择sources root
以上面的区别是不再setting中设置,直接到调用的文件中设置,下面是路径一些说明
print os.path.abspath(__file__) #当前文件的绝对路径(含文件名) print os.path.dirname(os.path.abspath(__file__)) #当前文件的路径(不含文件名) print os.pardir #父级的文件名显示是 .. print os.path.abspath(os.pardir) #获取当前文件的父级文件名
以下才是正式的调用
file_path=os.path.join(os.path.abspath(os.pardir),"py_aiplat_demoSDK") sys.path.insert(0 ,file_path) import SDK
也可以直接把写再SDK文件夹__init__.py里面,不需要写当前文件.py里面,以后如果需要调该sdk模块,系统会自动初始化