【问题标题】:Running Python in CMD not working在 CMD 中运行 Python 不起作用
【发布时间】:2012-11-09 00:47:42
【问题描述】:

我是一名 Python 初学者,在从 CMD 运行 Python 时遇到问题。我已将 Python 安装目录添加为 PATH 变量 (;C:\Python27)。我可以从 CMD 运行 Python 解释器,但是当我从 CMD 发出类似“python file.py 命令”的命令时,它返回“Error2,Python 无法打开,没有这样的文件/目录”。

所以我要做的是转到“cd C:\Folder\Folder2\My_Python_Files”,然后每次都键入“file.py 命令”。有没有更快或更有效的方法来做到这一点?我目前在 Windows 8 上运行 Python2.7。

【问题讨论】:

  • 将包含file.py 的文件夹添加到PYTHONPATH 环境变量中。
  • file.py 在哪里?当您键入python file.py 时,当前目录是什么?将 Python 目录添加到路径中只会使 Python 本身全局可访问;它不会使所有用 Python 编写的程序都可以自动访问。您仍然必须与特定 Python 文件位于同一目录中才能运行它(除非您进行更多路径操作)。
  • windows 命令如何在不指定绝对路径的情况下知道文件在哪里?

标签: python windows-8 cmd environment-variables


【解决方案1】:

当您运行python <script> 时,它需要提供的脚本的实际路径。你不能单独指定“file.py”,除非它就在你的当前目录中。

在 Windows 中,您可以采取以下两个步骤:

  1. 将 .py 文件与 python 关联。然后你可以不使用python 命令直接运行它们:/path/to/file.py
    (右键单击一个.py -> 属性 -> 更改为与 python.exe 关联)

  2. 进一步的步骤:将位置添加到您的 PATH 环境中,该环境将包含您的 python 脚本。从那里,您只需执行file.py,它就会在您的搜索路径中找到。
    因此,您可以将C:\Folder\Folder2\My_Python_Files 添加到您的PATH,这样您就可以存储可执行的python 脚本。

您还可以在 shell 会话期间临时设置 PATH 变量:

SET PATH=%PATH%;C:\path\to\project

【讨论】:

  • 我按照步骤 #2 并将 C:\Folder\Folder2\My_Python_Files 添加到我的 PATH 变量中,并且它有效。所以它需要设置你想使用 CMD 访问的每个脚本的路径?谢谢,你很有帮助:)
  • 一般来说,当你想让一个命令行脚本对整个系统可用时,你把它放在一个系统的PATH位置。与POSIX 相同。但是在POSIX 中,我们有符号链接,这意味着您可以简单地将其链接到系统路径位置。对你来说最好的选择是在它准备好时将它复制到你的系统路径,并且在开发期间你应该使用直接路径来处理它。或者,就像你说的......将它们添加到你的路径中。您实际上可以使用 SET PATH=%PATH%;C:\path\to\project 临时设置 PATH
【解决方案2】:

就像PATH 环境变量列出了几个目录供系统搜索可执行文件一样,PYTHONPATH 对 Python 搜索.py 文件也是如此。如果您希望文件夹中的脚本可全局访问(即您可以按照自己的意愿通过名称引用它们,或者您可以从其他脚本中导入它们),将该文件夹添加到PYTHONPATH(如果它不存在则创建它)。

请注意,调用PYTHONPATH 中的脚本的命令是:

python -m file [<script arguments>]

(即使用-m 选项将其视为module,并且不要使用扩展名.py

an article 更详细地解释了 Python 如何查找其源文件(在命令行中和通过 import)。

请注意,您也可以使用完整路径来引用脚本:

python C:\Folder\Folder2\My_Python_Files\file.py command

但是通过这样做,此脚本可能通过import 引用的同一文件夹中的其他文件可能不起作用(因为 Python 不知道在哪里搜索它们)。

【讨论】:

  • 这是很好的信息,但它实际上与 PYTHONPATH 无关。那是为了进口。 OP 正在尝试将它们作为入口点运行,这意味着它与 PATH 相关。
  • 你说得对,我没注意到!但是我相信如果file.py在PYTHONPATH中,你可以使用python -m file(没有.py)访问它,对吗?我会检查并更新答案。
  • 我已经创建了 PYTHONPATH 变量并将其放入我的“file.py”所在的目录中。当我尝试访问它时,它仍然在 CMD 上返回相同的错误,“不存在这样的文件”
  • @MikhailOnate 我刚刚更新了我的答案,感谢@jdi 的评论。您需要以不同的方式调用您的文件:python -m file command
  • 我可以通过将脚本目录添加到 PATH 变量来运行它。感谢所有反馈。
【解决方案3】:

   除非项目文件夹位于 PATH 中,否则您无法调用该文件,除非您位于项目文件夹中。除非需要,否则不要为项目创建 PATH;这是不必要的。

只需横向到文件的目录并在目录中运行命令。那可行。

如果该项目将被其他项目/文件使用,您可以使用 PYTHONPATH 设置目录,以便其他项目可以成功访问它。

   希望对您有所帮助。

【讨论】:

  • 感谢您的帮助,我可以通过将其添加到 PATH 来运行它。
  • 如果所有答案都有帮助,请全部投票,并选择其中一个作为接受的答案;这对您以及以后可能遇到类似问题的其他人都有帮助。
  • 由于我的帐户很新,我仍然无法投票给答案。很快就会这样做。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 2021-06-06
相关资源
最近更新 更多