【问题标题】:Trying to directly run .py file using Enthought Canopy Python on Windows 7尝试在 Windows 7 上使用 Enthought Canopy Python 直接运行 .py 文件
【发布时间】:2014-10-28 06:02:03
【问题描述】:

我正在尝试使用 Windows 设置 Canopy,以便默认情况下它不会尝试以 GUI 形式打开。基本上我想这样做:

http://docs.enthought.com/canopy/configure/canopy-cli.html#create-epd-dist

唯一的问题是此处列出的说明似乎没有按预期工作。

这就是我想要发生的事情。我有一个装满脚本的文件夹。文件夹 (my_program/) 在我的路径中。我想从任何目录在命令行上调用 script_1.py 并让它执行。使用旧的 Enthought 发行版就是这样。 Mac 上的 Canopy 也是如此。但是,在 Windows 上运行 Canopy 时,Canopy GUI 会弹出并打开 script_1.py 进行编辑。

我在文档中运行了这个命令:

Canopy\App\Canopy_cli.exe setup C:\Python27 --set-default

除了常规命令提示符之外,它还创建了“Canopy 64 位(独立)命令提示符”。但是,这个新命令提示符和常规命令提示符中的行为保持不变—— script_1.py 只是打开 Canopy GUI。

这是我的 PATH 变量:

c:\python27\scripts;  
c:\users\****\appdata\local\enthought\canopy\user\scripts;  
C:\Users\****\AppData\Local\Enthought\Canopy\User; 
C:\Users\****\AppData\Local\Enthought\Canopy\User\Scripts;   
C:\Python27;  
C:\Python27\Scripts;  
C:\Users\****\Documents\my_program;

任何想法为什么我无法将 Canopy 设置为类似 EPD 的环境,或者如何设置?谢谢!

更新:

首先,我按照 Jonathan March 在他的回答中概述的那样运行了这个命令:

ftype Python.File=c:\Users\**\AppData\Local\enthought\Canopy\User\Scripts\python.exe %1

但是,这样的行为保持不变。以上结果是解决方案的一半。

幸运的是,我能够使用 regedit 让它工作。我必须通过将默认值从“Enthought.Canopy”更改为“Python.File”来编辑 Computer\HKEY_CLASSES_ROOT.py。我还通过删除“Enthought.Canopy”键并添加“Python.File”键更改了 Computer\HKEY_CLASSES_ROOT.py\OpenWithProgIds。

我真的很高兴它能够正常工作,但是对于我的软件的 Windows 用户来说,使用 regedit 是一项艰巨的任务。现在我想知道,是否有一种更简单的方法可以做到这一点,也许是在将我的命令行脚本文件夹放入其路径的安装脚本中?任何想法都表示赞赏。

【问题讨论】:

    标签: python enthought canopy


    【解决方案1】:

    对不起,“EPD-like”是指直接运行 python,而不是 windows 文件关联,但我绝对能理解你的意思。以下是获得所需内容的方法:

    1) 即使您是该系统的完全管理员,也可以按照本文步骤 1 和 2 中的说明打开“管理员:命令提示符”窗口:https://support.enthought.com/entries/23736288-Windows-On-some-systems-admin-users-cannot-immediately-install-for-all-users-

    2) 在此窗口中,在命令提示符处键入以下命令:

    ftype Python.File=c:\Users\**\AppData\Local\enthought\Canopy\User\Scripts\python.exe %1
    

    测试它现在是否可以正常工作,然后关闭此窗口。

    【讨论】:

    • ftype 设置系统范围的文件类型。要仅为当前用户设置此项,您可以使用 reg.exe,如下所示:reg add HKCU\Software\Classes\Python.File\shell\open\command /ve /d "\"%LOCALAPPDATA%\Enthought\Canopy\User\python.exe\" \"%1\" %*"。 “HKCU”适用于当前用户。我添加了%* 来传递其余的命令行参数。
    • 感谢您的回复,但到目前为止这似乎不起作用。在 regedit 中,Python.File 现在与 python.exe 关联,但 .py 扩展名仍与 Canopy 关联。此外,我尝试使用命令“assoc .py=Python.File”(以前“assoc .py”一无所获)。但是,regedit 仍然将 .py 文件的默认值列为使用 Canopy 打开,并且行为仍然完全相同。还有其他想法吗?
    • 奇数;只需在 regedit 中删除该关联,然后再次尝试 assoc 命令即可。
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2023-04-06
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多