【问题标题】:How to get Spyder to open python scripts (.py files) directly from Windows Explorer如何让 Spyder 直接从 Windows 资源管理器打开 python 脚本(.py 文件)
【发布时间】:2016-02-22 08:55:42
【问题描述】:

我最近在 Windows 7 (Anaconda 3-2.4.0-Windows-x86_64) 上安装了 Anaconda 发行版。与 IDLE 不同,我无法在 Spyder IDE 中右键单击并打开 py 文件。我必须先打开 Spyder,然后导航到文件或将其拖放到编辑器中。有没有办法直接从 Widows Explorer 在编辑器中打开文件?

【问题讨论】:

标签: python windows ide spyder


【解决方案1】:

使用当前版本的 Anaconda (4.1.0),您只需在 Windows 文件资源管理器中右键单击 python 脚本并选择“打开方式”即可。第一次执行此操作时,您需要选择“选择默认程序”,然后浏览到 Anaconda 安装中脚本目录中的 spyder.exe。还要确保取消选中“始终使用所选程序打开此类文件”,然后单击“确定”。从现在开始,当您从 Windows 文件资源管理器的右键菜单中选择“打开方式”时,spyder.exe 将始终列为选项之一。

【讨论】:

  • 图标坏了,每次都弹出一个黑框,但是能用!
【解决方案2】:

我使用的另一款软件也遇到了类似的问题。

我解决此问题的方法是通过 打开方式 对话框将 .py 文件的文件关联设置为 C:\Anaconda\Scripts\spider-script.py。如果您现在尝试通过双击打开您的File.py,您将收到类似的错误

~\file.py 不是有效的 Win32 应用程序。

这可以通过编辑spyder-script.py 注册表项来解决:

HKEY_USERS\S-1-5-21-3559708500-1520960832-86631148-1002\Software\Classes\Applications\spyder-script.py\shell\open\command

并将默认值 "C:\Anaconda\Scripts\spyder-script.py" %1 替换为 "C:\Anaconda\python.exe" "C:\Anaconda\Scripts\spyder-script.py" %1。如果您的机器的路径不同,请使用此键的搜索功能,当然,请为您的 python 安装使用适当的路径。 spyder-script.py 现在应该在 python shell 中执行。

来自 ftype 的文档字符串,

...在打开的命令字符串中,%0 或 %1 被替换为通过关联启动的文件名。

【讨论】:

    【解决方案3】:

    此处是 Spyder 维护者)此功能作为我们Windows installer 的一部分提供。换句话说,如果您使用它安装 Spyder,那么您将在 Windows 资源管理器的 Open with 菜单中看到一个新条目,允许您直接在 Spyder 上打开 Python 文件。

    很遗憾,我们无法对其他安装方法(即使用 Anaconda 或 pip 时)执行相同操作。这就是为什么需要像此处其他答案中提到的那样实施黑客攻击。

    【讨论】:

    • 唉,我已经安装了 Anaconda 2.4.1(我先卸载了旧版本),但我无法使用 Spyder 右键单击​​(打开方式).py 文件(我无法将可执行文件与文件扩展名)。此外,在安装(Windows 7 x64;适用于所有人)之后,我在“开始”菜单中没有看到 Spyder(或任何 Anaconda 的东西)。 Spyder 可执行文件也不与 Spyder 图标关联。不知道这是否相关。
    • @asylumax,抱歉,我们无法在 2.4.1 中添加该功能。它会在未来的版本中出现(仍然不知道在哪个版本中)。
    • 我把答案改得更准确了。
    • Carlos,这个功能有进展吗?
    • 不,抱歉,这方面还没有任何进展。
    【解决方案4】:

    在 Windows (10) 中对我来说效果很好的是将 *.py 文件与包含此行的批处理文件(比如说“SpyderBATCH.bat”)相关联:

    [ANACONDA_FOLDER_PATH]\pythonw.exe" "[ANACONDA_FOLDER_PATH]\cwp.py" "[ANACONDA_FOLDER_PATH]" "[ANACONDA_FOLDER_PATH]/pythonw.exe" "[ANACONDA_FOLDER_PATH]/Scripts/spyder-script.py" %1  
    

    [ANACONDA_FOLDER_PATH] 必须替换为 Anaconda 文件夹的完整路径(通常在“程序文件”下)。

    当双击 python 脚本(比如“file.py”)时,Windows 的作用是传递给 SpyderBATCH,作为参数号%1,即“file.py”的完整路径。

    然后 Spyder 启动并在编辑器视图中显示脚本“file.py”。

    【讨论】:

    • 是否可以阻止每个脚本弹出一个新的 Spyder 窗口?
    • 对我有用,不会创建新的 Spyder 实例。但是,每次要使用该批处理文件打开脚本时,我都需要确认。
    【解决方案5】:

    我想我也会为此发布我的解决方案。

    我在多个不同的环境中安装了 Spyder。不能简单的调用 spyder-script.py 脚本不出错,因为必须激活环境。

    @echo off
    call [YOUR_CONDA_PATH]\Scripts\activate.bat [YOUR_CONDA_PATH]
    call conda activate [YOUR ENVIRONMENT]
    call start [YOUR_CONDA_PATH]\envs\[YOUR ENVIRONMENT]\pythonw.exe "[YOUR_CONDA_PATH]\envs\[YOUR ENVIRONMENT]\Scripts\spyder-script.py" %1
    

    如果您在基础环境中安装了 Spyder,则可以删除第二行并从第三行删除环境扩展。

    希望任何对其他解决方案感到奇怪的人,这个解决方案将通过正确激活环境来解决问题。

    【讨论】:

      【解决方案6】:

      solution from JoeB152 非常适合我!

      如果您有兴趣将 spyder 图标(或任何其他图标)添加到 .py 文件中,并且如果您想避免弹出 cmd,我 found out the following workaround 无需管理员权限也是可行的:

      1. 下载Bat To Exe Converter的便携版(我用的是v3.0.10)。
      2. 在 Bat to Exe 转换器中打开您的自定义 .bat 文件。
      3. 在选项设置中,激活“图标”并给出相应图标的路径(对我来说它位于:.../AppData/Local/Continuum/anaconda3/Scripts/spyder.ico)。
      4. Exe-Format设置为Invisible(不会再弹出空的cmd窗口)
      5. 将 .bat 文件转换为 .exe 文件。
      6. 像往常一样,设置为使用新创建的 .exe 打开 .py 文件。

      享受吧!

      环境: 视窗 10, 康达 4.8.2, 蜘蛛 4.0.1, Python 3.7

      【讨论】:

        【解决方案7】:

        这个问题与 anaconda 安装默认值有关 - 默认情况下它不会在 PATH 中注册自己,这会鼓励用户这样做。正确注册路径中的所有目录后,spyder.exe 按预期工作。

        如何知道,注册什么? 找到并激活.bat 并在 cmd 中运行它,然后运行 ​​echo %PATH% 并手动注册所有提及 anaconda 的目录。

        或者,重新安装 anaconda 并启用 PATH 注册。 然后,您可以将 .py 文件与 spyder.exe 关联,并且关联将起作用。

        【讨论】:

          【解决方案8】:

          我之所以回答是因为我花了一个多小时才将这个线程中提供的所有(伟大的)解决方案拼凑在一起,以获得有效的东西(感谢Martin SorgelJoeB152Max-K)。如果它是多余的,请原谅我,但我需要一个更直接的解释才能让它工作。

          完整解决方案:

          1. 不要使用 Bat-to-Exe 转换器。您通过谷歌找到的所有恶意软件都包含一些恶意软件,而我的计算机最终删除了我使用该方法制作的 .exe 文件,因为其中包含木马。你也不需要它们。

          2. 创建一个新文件 .bat 文件,该文件将启动 Spyder,如下所示。我是使用 NotePad++ 完成的

            @echo off
            call [YOUR_CONDA_PATH]\Scripts\activate.bat [YOUR_CONDA_PATH]
            call conda activate [YOUR ENVIRONMENT]
            call start [YOUR_CONDA_PATH]\envs\[YOUR ENVIRONMENT]\pythonw.exe "[YOUR_CONDA_PATH]\envs\[YOUR ENVIRONMENT]\Scripts\spyder-script.py" %1
            

            我的 [YOUR_CONDA_PATH] 只是 C:\Users\myusername\Anaconda3\。你的可能类似。 JoeB152 说,如果您在基本环境中安装了 Spyder,则可以删除第二行并从第三行删除环境扩展。 如果你双击这个 .bat 文件,你就会知道它是正确的,它会在你想要的环境中打开 Spyder。

          3. 打开 Anaconda 终端,“以管理员身份运行”并将您的 .py 文件与您刚刚创建的新 .bat 文件相关联,如下所示。正如其他人指出的那样,空格和引号必须精确地位于它们所在的位置。如果您不以管理员身份运行,您将被拒绝访问关联 .py=Python。

          assoc .py=Python 
          ftype Python="[PATH_TO_YOUR.batfile]" "%1" %*
          

          您应该能够双击 .py 文件并在 spyder 中打开它们。此解决方案不会将这些文件与 sypder 的图标相关联,但它会自动打开这些文件,而不会使您的 PC 受到恶意软件的感染。

          Windows 10、Python 3.7.7

          【讨论】:

            【解决方案9】:

            我在安装 conda 时找不到 spyder.exe。但是在我的 users/.anaconda/navigator/scripts 中,我找到了一个 spyder.bat 文件。使用它打开文件会打开 anaconda 提示符,不久之后 spyder 将打开文件。文件图标已损坏,但对我有用。希望这可能会有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-12-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多