Python:从命令行使用相对路径运行脚本

Python:从命令行使用相对路径运行脚本,python,windows,command-line,Python,Windows,Command Line,TL;DR 在Windows 10上,从命令行运行由相对路径指定的python脚本有哪些选项?是否可以更改环境变量以实现此目的?如何做到这一点 LONG 我正在使用Windows10。当我遵循安装指南(为Linux编写)时,一切都很好,直到我需要在Windows上执行以下操作 # From tensorflow/models/research/ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim 在Windows上,我向PYTHONPATH添加了两条路

TL;DR

在Windows 10上,从命令行运行由相对路径指定的python脚本有哪些选项?是否可以更改环境变量以实现此目的?如何做到这一点

LONG

我正在使用Windows10。当我遵循安装指南(为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脚本

并从命令行运行它:

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

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

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

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

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


《安装指南》中的这些行将在
cd…/tensorflow/models/research/
之后运行,因此是绝对路径:


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

我没有对此进行测试,但如中所述, 此>>>导出PYTHONPATH=$PYTHONPATH:
pwd
pwd
/slim应用作

设置PYTHONPATH=%PYTHONPATH%;%cd%;%cd%\slim


我应该更清楚一点——我向PYTHONPATH环境变量添加了绝对路径。但是如上所述,它仍然不起作用。
PYTHONPATH
与从命令行查找运行的正则脚本无关。它将目录添加到
sys.path
,以便与
import
语句一起使用。它仅与以脚本形式运行导入模块的
-m
选项或运行命令行脚本的
-c
选项的命令行使用有关。该选项适用于Windows的链接tensorflow设置。然而,OP的问题意味着对
PYTHONPATH
的用途的深刻误解。给定的“test.py”脚本只是一个与tensorflow无关的
print
调用,OP似乎错误地认为Python将搜索该脚本的
sys.path
。正确,test.py与tensorflow无关。这只是为了测试我是否可以运行一个具有相对路径的简单脚本。有办法吗?环境变量的某些设置可以实现这一点吗?有两个选项:1)在[development mode]()中安装目录。2) 执行>>>python scriptName.py时。。。如果您提供目录而不是文件,则目录将添加到sys.path,并且--main--.py(-symbol代替uu)文件将作为uuu main u>>>python dirName执行。如果您的目录中有一个名为--main--.py(-symbol代替u)的脚本,则应执行此任务。参考[此处]()
C:\User\me> python test.py
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim