如何在与另一个python文件不同的目录中运行python文件?

时间:2018-09-25 16:21:50

标签: python python-3.x file python-import

在我的python程序过程中,我生成了以下字符串

“ D:\ something_else.py”

可以说D中还有其他资源:something_else.py需要。

我该如何从我的代码中运行something_else.py,可以说它是从C:\ Users \ Someone \ Desktop运行的?

现在我正在使用以下内容:

from subprocess import call 
call(["python",pythloc])

这给我一个错误,因为它只能找到something_else.py,而无法找到something_else.py需要的其他资源,它们与something_else.py位于同一文件夹中

2 个答案:

答案 0 :(得分:2)

除了需要小心使用“ \”而不是:

   locationDir="D:\something_else.py"

在字符串前加上r:

   locationDir=r"D:\something_else.py"

您只需设置PYTHONPATH环境变量即可指向其他模块所在的目录。

有关其他信息,请参见此处:

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH

答案 1 :(得分:2)

如果您可以将提到的文件夹作为项目本身的一部分,则可以将其变成python包,只需在名为__init__.py的文件夹中添加一个空文件即可。

如果它位于其他路径中,例如“ D:\ some_directory \”,并且具有something_else.py和其他依赖项,请与导入语句一起执行此操作:

sys.path.append(r"D:\some_directory\")
from something_else import some_useful_function, some_useful_class

它将把提到的目录添加到您的sys.path中,然后您可以从保存在其中的python文件中导入任何内容,然后像往常一样调用函数。

如果您使用的是任何PyCharm之类的IDE,作为导入检查的一部分,它仍可能在第二行显示unresolved errors。但是代码在您运行时将可以正常工作。

当您只需导入和调用函数并具有更好的控制和错误检查功能时,从其他(python something.py)调用python脚本几乎从来不是一个好主意。