您好,我正在尝试在Windows的Powershell中使用django学习Python,以创建一个简单的CRUD应用程序,但对设置和使用有一些疑问。
我已设置路径环境变量,以包含指向包含测试.py脚本的文件夹的路径,我认为该脚本允许我直接从Powershell中的c:\运行,但是当我尝试使用以下方式运行示例时:
c:\> python test1.py
c:\> python .\test1.py
它不起作用,我得到:
c:\ Python27 \ python.exe:无法打开文件'。\ test1.py':[错误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框来运行脚本,该框在运行脚本并完成后立即关闭。
这些方法之间有什么区别,以一种方式或另一种方式运行脚本是否存在问题?
最佳答案
这里的问题是在第一种情况下:
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扩展名相关联的任何东西,这很可能在新的Window中调用新的Python解释器,因此其行为在完成后便消失了。在Windows上,由于没有shebang,所以我通常更喜欢直接运行python解释器并将脚本作为参数传递。我通常会首先切换到脚本所在的目录。这样,它以外壳为中心,而且我认为很简单。
您可以运行
pushd .
保存cwd,然后运行popd
之后返回(可选)。它将在.cmd文件和类似文件中工作。关于python - 开始Python教程,但有一些初学者的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25798719/