您好我试图在Windows上的powershell中使用django来学习Python来创建一个简单的CRUD应用程序但是对设置和使用有一些疑问。
我已经设置了路径环境变量,以包含一个包含测试.py脚本的文件夹的路径,我认为这些脚本允许我直接从powershell中的c:\运行但是当我尝试使用以下命令运行示例时:
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框中打开来运行脚本,该框在运行脚本并完成后立即关闭。
这些方法有什么区别,是否存在以某种方式运行脚本的问题?
答案 0 :(得分: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解释器,因此它会在完成后消失。< / p>
在Windows上,由于没有 shebang ,我通常更喜欢直接运行 python 解释器并将脚本作为参数传递。我通常会先切换到脚本所在的目录。这种方式更加以壳为中心,我认为这很简单。
您可以运行pushd .
来保存cwd,然后在popd
之后返回,可选择。这也适用于.cmd文件和类似文件。
答案 1 :(得分:0)
您确定test1.py
位于C:
而不是c:\Python27\Scripts