Mac OS系统下Python脚本无法使用相对路径(..)添加sys.path问题求助
问题根因
- 你使用的
../../mainscripts/misc这类相对路径的锚点是运行脚本时终端所处的工作目录,不是script1.py文件本身的存放目录。只要你运行脚本时的工作目录不是/Users/xxx/machinelearning/scripts,这个相对路径就会指向错误位置,自然无法找到目标模块。 - 额外注意:你给出的示例代码里
sys.path.insert(0, '../../mainscripts/misc'))末尾多了一个多余的右括号,就算路径正确也会触发语法错误。
可行的解决方案(不用写死绝对路径)
你可以以script1.py自身的存放路径为锚点拼接相对路径,不需要写死用户目录前缀即可适配所有环境,代码如下:
import os import sys # 获取当前script1.py文件所在的绝对目录 current_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接相对于script1.py的目标目录路径 target_dir = os.path.join(current_dir, "..", "..", "mainscripts", "misc") # 转成绝对路径后加入sys.path,消除相对层级符号 sys.path.insert(0, os.path.abspath(target_dir))
验证与导入
配置完成后你可以先打印target_dir确认路径是否为预期的/Users/xxx/mainscripts/misc,确认无误后即可正常导入变量:
from global_variables import 你需要的变量名
内容的提问来源于stack exchange,提问作者anarchy
相关产品推荐
相关产品推荐

