首页 > 解决方案 > 使用相对路径从另一个 py 脚本运行 py 脚本

问题描述

当两个脚本位于同一目录中时,有答案。

但是,对于相对路径,我无法获得此处提到的任何答案。它们适用于已知完整路径的情况。

我有以下文件夹层次结构

在此处输入图像描述

我需要在 command.py 中调用并运行 sub.py

以下是commander.py

import importlib.util
spec = importlib.util.spec_from_file_location('sub.py', '..//main/sub/sub.py')
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)
foo.main()

它当然可以识别该目录,因为我可以看到在子文件夹中创建了 pycache '文件夹。

但是子脚本没有运行。我已经手动启动了子脚本,我知道它可以正常工作。

子脚本具有以下结构

import stuff

def main():
   do stuff
return

while true:
  main()
break

我是 python 新手。我也试过:

import sys
    sys.path.insert(0, '..\\main\sub')

    import sub.py 

    sub.main()

我正在使用 py 3.7 没有错误

标签: python

解决方案


import subprocess
import os
main_path = os.getcwd()
relative_path =r'..\\Main\sub'

filepath=os.path.join(main_path, relative_path[9:]) 
subprocess.call('python {filepath}', shell=True)

推荐阅读