You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10中Python脚本启动路径配置问题:为何设置后无法直接运行

提问

我原本以为只要把脚本所在路径添加到Path或PYTHONPATH环境变量里就能直接执行脚本,于是把E:\Tests\PythonTests添加到PYTHONPATH,还把PYTHONPATH加入了系统Path。在Windows终端执行SET命令能看到配置的路径:

E:\Tests> SET
Path=E:\Tests\PythonTests
PYTHONPATH=E:\Tests\PythonTests

(为便于阅读已简化路径列表)

之后我在E:\Tests\PythonTests目录下创建了简单的test.py文件,内容只有一行:

print("Hello world")

进入E:\Tests\PythonTests目录时能成功运行:

E:\Tests\PythonTests> python test.py
Hello world

进入E:\Tests目录时,通过相对路径也能运行:

E:\Tests> python pythonTests/test.py
Hello world

但直接执行以下命令却失败了:

E:\Tests> python test.py
python: can't open file 'test.py': [error 2] No such file or directory

我的Python版本是3.8.0:

E:\Tests\PythonTests>python --version
Python 3.8.0

请问我遗漏了什么?操作哪里出错了?


回答

核心问题:混淆了环境变量的作用范围

你误解了PYTHONPATH和系统Path的作用:当你执行python test.py时,Python只会在当前工作目录查找test.py,不会去PYTHONPATH或Path里搜索这个脚本文件。这两个变量的实际作用是:

  • PYTHONPATH:供Python查找可导入的模块/包,比如你在其他目录写import test,Python会去PYTHONPATH里找test.py作为模块导入,但和直接执行脚本无关。
  • 系统Path:供Windows查找可执行程序(比如python.exe),不是用来定位Python脚本的。除非你直接输入test.py让系统自动匹配关联程序执行,这和python test.py的逻辑完全不同。

为什么部分场景能成功?

  • 在脚本目录执行:当前工作目录就是test.py所在的目录,Python直接就能找到文件。
  • 使用相对路径:你明确指定了脚本的位置(pythonTests/test.py),Python会根据这个路径定位到文件,因此能正常运行。

实现直接执行的两种方案

如果你想在E:\Tests目录直接运行脚本,可选择以下两种方式:

  1. 直接运行脚本文件(推荐):
    因为你已经把E:\Tests\PythonTests加到了系统Path,直接在终端输入test.py,Windows会自动在Path中找到该脚本,并用关联的Python解释器执行,效果和python test.py一致。
  2. 以模块方式运行(适合模块导入场景):
    在E:\Tests\PythonTests目录下创建空的__init__.py文件,然后在E:\Tests目录执行python -m test,此时Python会通过PYTHONPATH查找test模块并运行。这种方式更适合模块导入场景,不是执行脚本的常规操作。

内容的提问来源于stack exchange,提问作者le_bleu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:05:36