Python导入自己的模块(sys.path.append())
当我们导入一个模块时:import xxx,默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中:
import sys
sys.path
返回的是一个路径列表,通常是各个包的存放路径。因此我们需要把自己的包所在目录给放进去。当然如果在当前目录就不用了。
通常使用os.path.abspath(__file__)
得到当前文件路径再使用os.path.dirname()
获得上一级目录。但是要注意的是os.path.abspath(__file__)
一定要在文件中运行,不要直接在命令行里面跑。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
要注意的是,如果要使用import
导入函数,请一定在要导入的文件所在目录下加上"__init__.py"文件,它可以是空的,作用是将该目录变为package。