Windows10命令行运行Python相对路径脚本的方法及环境变量配置
Windows10命令行中运行PYTHONPATH目录脚本的解决方案
我来帮你解决这个困惑——很多人刚接触PYTHONPATH时都会混淆它和系统PATH的作用,先把核心逻辑理清楚,再给你几个可行的方案:
先搞懂核心问题
PYTHONPATH的作用是告诉Python解释器去哪里找要导入的模块/包,但它并不能直接让你在命令行里通过相对路径执行脚本文件。你遇到的情况很典型:配置PYTHONPATH后,导入模块没问题,但执行脚本时,命令行只认当前工作目录或者系统PATH里的路径,这就是关键差异。
可行方案:三种思路任你选
方案1:把脚本目录加到系统PATH(最直接的命令行运行方案)
如果想在任意目录下直接用脚本名(或相对路径)运行PYTHONPATH里的脚本,把脚本所在目录加到系统PATH是最直接的办法,步骤如下:
- 打开Windows设置:按下
Win + I,搜索「环境变量」,选择「编辑系统环境变量」。 - 在弹出的「系统属性」窗口中,点击「环境变量」按钮。
- 在「系统变量」区域找到
Path变量,点击「编辑」。 - 点击「新建」,粘贴你的PYTHONPATH脚本目录的绝对路径(比如
D:\tensorflow_projects\scripts)。 - 依次点击「确定」保存所有窗口的修改。
- 必须重启命令行窗口——环境变量修改不会在已打开的终端中生效。
现在你在任意目录下,直接输入脚本名(比如train_model.py)或者相对路径(比如utils\data_clean.py)就能运行脚本了。
方案2:用Python的-m参数以模块方式运行(更符合Python规范)
如果不想修改系统PATH,还可以利用PYTHONPATH的配置,把脚本目录变成Python包来运行,步骤如下:
- 到你的PYTHONPATH目录下,新建一个空的
__init__.py文件——这个文件是用来标记该目录为Python包的,空文件就行。 - 假设你的脚本叫
predict.py,在任意命令行目录下运行:
注意这里不需要加python -m predict.py后缀。如果脚本在子目录里,比如models\cnn.py,就运行:python -m models.cnn
这种方法完全依赖你已经配置好的PYTHONPATH,不用改系统环境变量,更适合规范的Python项目结构。
方案3:临时在命令行添加路径(单次生效)
如果只是临时需要运行一次,不想修改永久环境变量,可以在当前命令行窗口里临时设置PATH:
set PATH=%PATH%;D:\tensorflow_projects\scripts
这个修改只在当前窗口生效,关闭终端后就会恢复原样。
关键注意事项
- 别搞混PYTHONPATH和系统PATH:PYTHONPATH是给Python找模块用的,系统PATH是给命令行找可执行文件(包括Python脚本)用的,两者作用完全不同。
- 一定要重启命令行:修改环境变量后,旧的终端窗口不会加载新的配置,必须重启才生效。
- 可选的shebang行:如果想直接输入脚本名运行(不用加
python前缀),可以在脚本开头加一行:
不过Windows下这个效果不如Linux明显,多数时候还是需要加#!pythonpython前缀来运行。
内容的提问来源于stack exchange,提问作者DatamineR
相关产品推荐
相关产品推荐

