【1.62】路径修改 base_dir

iimport sys
print(sys.path)

#打印上一级目录 就是包含自己的文件夹 以及环境变量的值

#pycharm 可能会加上自己的文件夹 最最外层的项目的目录名

 

 

 

 

一般建立一个项目  bin。py  放在 bin 文件下 

所以 目录结构

modulefile

------bin

    -----bin.py

------modulepacket

    ------cal.py

    ------main.py

 

 

bin.py 学习 

import sys

#from modulepacket import main
# 这样调用就会出错了,因为目录不一样了   ModuleNotFoundError: No module named 'modulepacket'
#这里调用 只能是bin.py 和 modulepacket 同一级目录
#这里如果还需要调用main  就要将main的路径加进来

sys.path.append(r"D:\untitled\module\modelfile")
from modulepacket import main
main.run(1,2,3,4,5)   #15
print (sys.path)


#当然加路径的方法 这是最笨的办法  因为写死了  不灵活
#看看下面的方法


import os
print(__file__)   #D:/untitled/module/modelfile/bin/bin.py
#我们看到用这个方法 取到了该bin.PY的绝对路径  ,实际上只是取到bin.py  路径是pycharm加上的
#所以还需要 os.path.abspath(__file__) 获取绝对路径
print(os.path.dirname(__file__)) #D:/untitled/module/modelfile/bin #取到括号内paths 上一级目录 print(os.path.dirname(os.path.dirname(__file__))) #D:/untitled/module/modelfile #取到最里面括号内路径的上两级目录 #那这样 就和我们需要的bin.py需要导入的路径一样了 base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(base_dir) from modulepacket import main main.run(1,2,3,4,5) #15

 

 

 

bin.PY  \以后就这样用

import sys
import os
base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)
from modulepacket import main

main.run(1,2,3,4,5)   #15

main.py

from modulepacket import cal
def run(*args):
    print (cal.add(*args))

cal.py

def add(*args):
    res = sum(args)
    return res

if __name__ == "__main__":
    print(add(1,2,3,4,5))

 

posted @ 2016-04-17 23:44  科学小怪癖  阅读(200)  评论(0)    收藏  举报