相关疑难解决方法(0)

如何在Windows中执行Python脚本?

我有一个简单的脚本blah.py(使用Python 2):

import sys
print sys.argv[1]
Run Code Online (Sandbox Code Playgroud)

如果我执行我的脚本:

python c:/..../blah.py argument
Run Code Online (Sandbox Code Playgroud)

它打印参数,但如果我执行脚本:

blah.py argument
Run Code Online (Sandbox Code Playgroud)

发生错误:

IndexError ...

所以参数不会传递给脚本.

PATH中的python.exe.blah.py的文件夹也在PATH中.
python.exe是执行*.py文件的默认程序.

问题是什么?

python windows scripting command-line file-association

92
推荐指数
3
解决办法
35万
查看次数

无需打开单独的shell即可运行python程序

在powershell中,当我运行python程序时:

> python hello.py
Run Code Online (Sandbox Code Playgroud)

该程序直接在我正在使用的powershell窗口中运行并打印任何输出.但是当我尝试在没有显式调用python的情况下执行它时:

> hello.py
Run Code Online (Sandbox Code Playgroud)

它打开了一个单独的窗口.我如何解决这个问题,以便它的行为与我明确调用python时的行为方式相同?

python powershell

6
推荐指数
1
解决办法
2989
查看次数

从命令行运行Python脚本会在默认文本编辑器中打开脚本,而不是执行脚本

我有.py扩展名与Python解释器相关的文件.但是,当我在命令行键入此类文件的名称并按下ENTER该文件时,将在默认文本编辑器(Notepad ++)中打开该文件,而不是使用关联的Python解释器运行.为什么?

Z:\1>where python
c:\Program Files\Python\2.7\python.exe

Z:\1>reg query HKCR\.py /ve

HKEY_CLASSES_ROOT\.py
    (Default)    REG_SZ    Python.File


Z:\1>reg query HKCR\Python.File\shell\open\command /ve

HKEY_CLASSES_ROOT\Python.File\shell\open\command
    (Default)    REG_SZ    c:\Program Files\Python\2.7\python.exe "%1" %*


Z:\1>echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW

Z:\1>type a.py
from __future__ import print_function; import sys; print(sys.executable); print(sys.version)
Z:\1>a.py    <--- this opens a.py in the default text editor
Run Code Online (Sandbox Code Playgroud)

我使用的是Windows Vista x64 Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32

UPDATE

删除HKEY_CLASSES_ROOT\Unknown\shell\notepad++\command密钥后(我在过去创建了这个密钥,以便在没有扩展名的情况下将文件与Notepad ++相关联 - 请参阅如何设置默认程序,在Windows中没有扩展名的情况下打开文件?),其值为C:\Program Files …

python windows command-line file-association

6
推荐指数
1
解决办法
5979
查看次数