1、两个文件在同级目录,first.py和second.py
second.py内容为:
在first.py中调用second.py中的hello函数
2.second.py在first.py的子目录
文件结构如下:
还是同样的需求,first需要调用second中的hello函数
second.py函数
first.py函数内容
3.second是在first的父目录下
second函数内容
first函数内容
以上的sys.path是一个列表,打印结果如下图所示,里面存储了各种环境变量,其中sys.path[0]存储了当前文件的位置,可以直接通过sys.path[0]获取本文件所在的绝对路径
关于os.path.dirname()以及参数__file__和sys.path的介绍(注:如果在py中使用,直接使用__file__即可,但是如果在ipynb中使用的话,使用的格式为"__file__",需要加上双引号
jupyter 内使用的代码如下:
),这里贴出一张stackoverflow的精彩回答
加入下面的这句话,python就可以找到我们在first.py中导入的second.py文件,程序可以正常运行
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
4.对于跨文件的py文件调用
文件目录结构如下
second函数内容
first函数内容
跨文件夹调用与第三种问题类似,只需要把相应的代码目录加入到sys.path中去,python在运行的时候,可以精准定位到想要导入的文件
附:对于找不到module的情况,还可以使用os.getcwd()获得当前路径,在py文件中进行字符串拼接,拼接出完整的绝对路径,打开或者访问绝对路径即可找到文件
1、两个文件在同级目录,first.py和second.py
second.py内容为:
在first.py中调用second.py中的hello函数
2.second.py在first.py的子目录
文件结构如下:
还是同样的需求,first需要调用second中的hello函数
second.py函数
first.py函数内容
3.second是在first的父目录下
second函数内容
first函数内容
以上的sys.path是一个列表,打印结果如下图所示,里面存储了各种环境变量,其中sys.path[0]存储了当前文件的位置,可以直接通过sys.path[0]获取本文件所在的绝对路径
关于os.path.dirname()以及参数__file__和sys.path的介绍(注:如果在py中使用,直接使用__file__即可,但是如果在ipynb中使用的话,使用的格式为"__file__",需要加上双引号
jupyter 内使用的代码如下:
),这里贴出一张stackoverflow的精彩回答
加入下面的这句话,python就可以找到我们在first.py中导入的second.py文件,程序可以正常运行
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
4.对于跨文件的py文件调用
文件目录结构如下
second函数内容
first函数内容
跨文件夹调用与第三种问题类似,只需要把相应的代码目录加入到sys.path中去,python在运行的时候,可以精准定位到想要导入的文件
附:对于找不到module的情况,还可以使用os.getcwd()获得当前路径,在py文件中进行字符串拼接,拼接出完整的绝对路径,打开或者访问绝对路径即可找到文件