通过__file__ 获取上一层路径
__file__ 在pycharm 里面是绝对路径,在命令行模式下是文件名, 在pytharm 中寻找上上一级目录通过如下代码可以实现
import sys
import os
# 在pycharm 里面,__file__ 是绝对路径,在命令行模式下是文件名
sys_path = os.path.dirname(os.path.dirname(__file__))
print("sys_path = {}".format(sys_path))
sys.path.append(sys_path)
from my_module import cal
print(cal.add(1, 2))
#结果:
# sys_path = D:/08_python/02_workspace/resposities/python_base/03_python_base/day21/test_module/sys_path
# 3
命令行结果:
D:\08_python\02_workspace\resposities\python_base\03_python_base\day21\test_module\sys_path\bin>python3 bin.py
sys_path =
Traceback (most recent call last):
File "bin.py", line 8, in <module>
from my_module import cal
ModuleNotFoundError: No module named 'my_module'
要实现上面pycharm 的效果,需要获取 __file__ 的绝对路径, 使用os.path.abspath() 方法
import sys
import os
# 在pycharm 里面,__file__ 是绝对路径,在命令行模式下是文件名
sys_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print("sys_path = {}".format(sys_path))
sys.path.append(sys_path)
from my_module import cal
print(cal.add(1, 2))
命令行执行结果:
D:\08_python\02_workspace\resposities\python_base\03_python_base\day21\test_module\sys_path\bin>python3 bin.py
sys_path = D:\08_python\02_workspace\resposities\python_base\03_python_base\day21\test_module\sys_path
3