首页 > 解决方案 > Python:从命令行运行具有相对路径的脚本

问题描述

TL;博士

Windows 10 上有哪些选项可以从命令行运行由相对路径指定的 python 脚本?可以更改环境变量来这样做吗?如何才能做到这一点?

我使用的是 Windows 10。当我按照这个安装指南(为 Linux 编写)时,一切都很好,直到我需要在 Windows 上执行以下操作

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

在 Windows 上,我将两个路径(整个、绝对、路径)添加到 PYTHONPATH。当我执行以下操作时;我看到添加了额外的两条路径。

C:\User\me>    python -c "import sys; print(sys.path)"

但是,如果我创建一个简单的test.py脚本

print("Relative path works")

并从命令行运行它:

C:\User\me> python test.py

如果 test.py 文件保存在 C:\User\me\ 中,它可以工作,但当它保存在 PYTHONPATH 的文件夹中时,它不会。

这个 SO Q&A

Python 解释器使用 PYTHONPATH。它与 Windows 的 PATH 环境变量不同。您不能将其用作在命令行上将文件传递给解释器的搜索路径。

但是我找不到如何实现我所需要的,使用脚本的相对路径从命令行运行它。请注意,使用绝对路径不是一个选项,因为安装指南需要将 2 个文件夹添加到 PYTHONPATH,才能使任务正常工作。

这应该是可能的,但我没有找到任何答案 - Python 3 文档描述了使用相对路径运行脚本的命令行选项:

执行脚本中包含的 Python 代码,该代码必须是引用 Python 文件的文件系统路径(绝对或相对)...

标签: pythonwindowscommand-line

解决方案


安装指南中的这些行旨在在 a 之后运行cd .../tensorflow/models/research/,因此是绝对路径:

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

您可能需要在 Windows 上执行类似的操作。等效的可能是将库的绝对路径添加到PYTHONPATH环境变量中。


推荐阅读