【问题标题】:Starting Python tutorials but have some beginner questions开始 Python 教程,但有一些初学者问题
【发布时间】:2014-11-06 01:37:55
【问题描述】:

您好,我正在尝试在 windows 上的 powershell 中使用 django 来学习 Python,以创建一个简单的 CRUD 应用程序,但对设置和使用有一些疑问。

我已经设置了路径环境变量以包含一个文件夹的路径,该文件夹包含我认为允许我直接从 powershell 中的 c:\ 运行的测试 .py 脚本,但是当我尝试使用以下命令运行示例时:

c:\> python test1.py
c:\> python .\test1.py

它不起作用,我得到:

c:\Python27\python.exe: 无法打开文件 '.\test1.py':[Errno 2] 没有这样的文件或目录

但如果我先 CD 到路径并运行它,它工作正常,我会在 powershell 窗口本身中获得输出:

c:\> cd c:\Python27\Scripts
c:\Python27\Scripts> python test1.py

此外,如果我只是从根 c:\ 提示符键入脚本的名称,例如:

c:\> c:\Python27\Scripts\test1.py
c:\> test1.py

它通过在一个 dos 框中打开来运行脚本,该框在运行脚本并完成后立即关闭。

这些方法之间有什么区别?以一种或另一种方式运行脚本是否存在问题?

【问题讨论】:

    标签: python django powershell


    【解决方案1】:

    这里的问题是,在第一种情况下:

    c:\> python test1.py
    c:\> python .\test1.py
    

    您正在运行 python 本身,然后该文件是解释器的参数。所以python会受到PATH的影响,但是文件是相对的。这两个文件路径都意味着在同一个目录中查找它,该目录是 C: 的根目录。由于该文件不在此处,因此会导致错误。

    第二种情况:

    c:\> c:\Python27\Scripts\test1.py
    c:\> test1.py
    

    文件本身作为“可执行文件”运行,考虑到PATH。在 Unix 上,这将使用 shebang 并以几乎相同的方式调用 shell,但在 Windows 上并非如此。相反,它基本上在操作系统级别运行与 .py 扩展相关联的任何内容,这可能会在新窗口中调用新的 Python 解释器,因此它在完成后会消失。

    在 Windows 上,由于没有 shebang,我通常更喜欢直接运行 python 解释器并将脚本作为参数传递。我通常会先切换到脚本所在的目录。这样一来,它就更加以 shell 为中心,而且我认为更直接。

    您可以运行 pushd . 来保存 cwd,然后在 popd 之后返回,可选。这也适用于 .cmd 文件和类似文件。

    【讨论】:

      【解决方案2】:

      你确定test1.pyC: 而不是c:\Python27\Scripts

      【讨论】:

      • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
      • @RobbyCornelissen:作者的问题是脚本'test1.py'的路径
      • 也许是这样,但您要求澄清而不是提供问题的答案。
      • @RobbyCornelissen:我的“询问”不是为了澄清,而是为了回答问题:)
      • 问题是:“这些方法之间有什么区别?以一种或另一种方式运行脚本是否存在问题?”现在看看你的“答案”。这以何种方式回答了这个问题?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多