【发布时间】:2016-02-22 08:55:42
【问题描述】:
我最近在 Windows 7 (Anaconda 3-2.4.0-Windows-x86_64) 上安装了 Anaconda 发行版。与 IDLE 不同,我无法在 Spyder IDE 中右键单击并打开 py 文件。我必须先打开 Spyder,然后导航到文件或将其拖放到编辑器中。有没有办法直接从 Widows Explorer 在编辑器中打开文件?
【问题讨论】:
我最近在 Windows 7 (Anaconda 3-2.4.0-Windows-x86_64) 上安装了 Anaconda 发行版。与 IDLE 不同,我无法在 Spyder IDE 中右键单击并打开 py 文件。我必须先打开 Spyder,然后导航到文件或将其拖放到编辑器中。有没有办法直接从 Widows Explorer 在编辑器中打开文件?
【问题讨论】:
使用当前版本的 Anaconda (4.1.0),您只需在 Windows 文件资源管理器中右键单击 python 脚本并选择“打开方式”即可。第一次执行此操作时,您需要选择“选择默认程序”,然后浏览到 Anaconda 安装中脚本目录中的 spyder.exe。还要确保取消选中“始终使用所选程序打开此类文件”,然后单击“确定”。从现在开始,当您从 Windows 文件资源管理器的右键菜单中选择“打开方式”时,spyder.exe 将始终列为选项之一。
【讨论】:
我使用的另一款软件也遇到了类似的问题。
我解决此问题的方法是通过 打开方式 对话框将 .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 被替换为通过关联启动的文件名。
【讨论】:
(此处是 Spyder 维护者)此功能作为我们Windows installer 的一部分提供。换句话说,如果您使用它安装 Spyder,那么您将在 Windows 资源管理器的 Open with 菜单中看到一个新条目,允许您直接在 Spyder 上打开 Python 文件。
很遗憾,我们无法对其他安装方法(即使用 Anaconda 或 pip 时)执行相同操作。这就是为什么需要像此处其他答案中提到的那样实施黑客攻击。
【讨论】:
在 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-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,则可以删除第二行并从第三行删除环境扩展。
希望任何对其他解决方案感到奇怪的人,这个解决方案将通过正确激活环境来解决问题。
【讨论】:
solution from JoeB152 非常适合我!
如果您有兴趣将 spyder 图标(或任何其他图标)添加到 .py 文件中,并且如果您想避免弹出 cmd,我 found out the following workaround 无需管理员权限也是可行的:
.../AppData/Local/Continuum/anaconda3/Scripts/spyder.ico)。享受吧!
环境: 视窗 10, 康达 4.8.2, 蜘蛛 4.0.1, Python 3.7
【讨论】:
这个问题与 anaconda 安装默认值有关 - 默认情况下它不会在 PATH 中注册自己,这会鼓励用户这样做。正确注册路径中的所有目录后,spyder.exe 按预期工作。
如何知道,注册什么? 找到并激活.bat 并在 cmd 中运行它,然后运行 echo %PATH% 并手动注册所有提及 anaconda 的目录。
或者,重新安装 anaconda 并启用 PATH 注册。 然后,您可以将 .py 文件与 spyder.exe 关联,并且关联将起作用。
【讨论】:
我之所以回答是因为我花了一个多小时才将这个线程中提供的所有(伟大的)解决方案拼凑在一起,以获得有效的东西(感谢Martin Sorgel、JoeB152 和Max-K)。如果它是多余的,请原谅我,但我需要一个更直接的解释才能让它工作。
完整解决方案:
不要使用 Bat-to-Exe 转换器。您通过谷歌找到的所有恶意软件都包含一些恶意软件,而我的计算机最终删除了我使用该方法制作的 .exe 文件,因为其中包含木马。你也不需要它们。
创建一个新文件 .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。
打开 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
【讨论】:
我在安装 conda 时找不到 spyder.exe。但是在我的 users/.anaconda/navigator/scripts 中,我找到了一个 spyder.bat 文件。使用它打开文件会打开 anaconda 提示符,不久之后 spyder 将打开文件。文件图标已损坏,但对我有用。希望这可能会有所帮助。
【讨论】: