【问题标题】:Python and the PATH environment variable in WindowsPython 和 Windows 中的 PATH 环境变量
【发布时间】:2013-08-04 10:16:50
【问题描述】:

我正在关注 Pylearn2 教程,并在其中一个步骤中编写了以下内容:

您的 PATH 环境变量中应该有 pylearn2/scripts。

所以我补充说:

C:\Anaconda\Lib\site-packages\pylearn2-0.1dev-py2.7.egg\pylearn2\scripts\

到 PATH 变量。

如果我想使用“execfile”函数执行上述文件夹中的脚本之一(例如“train.py”),是否需要再次添加路径? 我一直在解释器中尝试这个:

>>> execfile('train.py')

但是,我收到错误消息:

IOError: [Errno 2] No such file or directory: 'train.py'

python不应该在PATH变量的目录路径中寻找脚本吗?

如果可以的话,请帮助我。

【问题讨论】:

    标签: python windows path environment-variables


    【解决方案1】:

    不,execfile 不会搜索 PATH。它只需要一个普通的文件名(可以是相对的或绝对的)并以与任何其他文件处理函数完全相同的方式打开它。

    除此之外,您很少想使用execfile。在这种特殊情况下,您可能应该做的是从 cmd(“DOS 框”)提示符而不是 Python 提示符运行脚本。

    如果你真的想使用 Python 提示符作为你的“shell”来代替 cmd,你可以这样做,但你仍然希望能够通过 PATH 找到程序,在单独的解释器实例中运行它们等。方法是使用subprocess。例如:

    >>> from subprocess import check_call # you only have to do this once
    >>> check_call(['train.py'])
    

    当然,这比您需要从 cmd 执行的输入要多得多:

    C:\> train.py
    

    ...但是你不能在 cmd 中运行任意 Python 语句,所以需要权衡。

    【讨论】:

    • cmd 会在 PATH 中搜索脚本吗?我有一个包含许多脚本的文件夹,包括 train.py,我想从另一个目录调用 train.py,但不必键入 train.py 的整个路径。
    • 是的,cmd.exePATH 中搜索任何名为train.py 的可执行文件。所以,如果你已经设置好 foo.py 文件被认为是可执行文件(我相信这是 Python 安装程序中默认启用的复选框),那么一切都会神奇地工作。
    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多