运行Spyder的快捷方式指定不存在的文件夹

问题描述 投票:0回答:1

刚刚(2023 年 10 月),我在 Windows 10 上重新安装了 Anaconda 以便安装 Python 3.9、Pyspark 和 Spyder。康达酒店 环境是“py39”。我刚刚在 2023 年 8 月在另一台笔记本电脑上执行了此操作, 所以我很熟悉我必须做什么。基本上,我复制了 “Spyder (py39)”快捷方式,以便我可以将其指向我自己的 CMD 脚本 设置 PySpark 环境变量。

我发现八月到十月之间情况发生了很大变化。 一方面,用户特定的 Anaconda 主目录从

%USERPROFILE%\anaconda3
%USERPROFILE%\AppData\Local\anaconda3
。 这很容易处理;我只是将一个
CONDA_HOME
变量指向 来自 CMD 命令行的新位置:

> setx CONDA_HOME "%USERPROFILE%\AppData\Local\anaconda3"

我将复制的“Spyder (py39)”快捷方式命名为“SpyderSpark (py39)” 并将目标字段设置为我自己的

SpyderSpark.cmd
脚本:

set "HADOOP_HOME=%USERPROFILE%\AppData\Local\Hadoop\2.7.1"
set "PYSPARK_DRIVER_PYTHON=Python"
set "PYSPARK_PYTHON=Python"

REM The following are from querying environment variables from
REM the Python REPL after launching pyspark from Conda prompt
set "JAVA_HOME=%CONDA_HOME%\envs\py39\Library"
set "SPARK_HOME=%CONDA_HOME%\envs\py39\lib\site-packages\pyspark"

REM The following was in the Target field of the original
REM "Spyder (py39)" shortcut from the Aug/2023 installation
start ""^
 "%CONDA_HOME%\pythonw.exe"^
 "%CONDA_HOME%\cwp.py"^
 "%CONDA_HOME%\envs\py39"^
 "%CONDA_HOME%\envs\py39\pythonw.exe"^
 "%CONDA_HOME%\envs\py39\Scripts\spyder-script.py"

令人费解的是,在新的“Spyder (py39)”快捷方式中 2023 年 10 月安装,目标字段以以下内容结尾 而不是上面的最后一条物理线。

 "%CONDA_HOME%\env"

这代替:

 "%CONDA_HOME%\envs\py39\Scripts\spyder-script.py"

路径

%CONDA_HOME%\env
不对应于任何现有文件或 文件夹。由于目标字段中没有任何内容引用 Spyder,我希望弹出“Spyder (py39)”快捷方式 执行的时候报错,但是没有。它启动 Spyder GUI 就好了。

由于我在

start
中使用上述
SpyderSpark.cmd
命令,我 真的很想知道 为什么较新的 Oct/2023
start
命令指定了一个 不存在的路径,根本没有提及 Spyder,但是 仍然可以正常启动 Spyder。感谢任何可以的光 对此感到震惊。

P.S. 上面的

SpyderSpark.cmd
脚本,参考
spyder-script.py
,启动 Spyder,但我正在排除故障 无法实例化 SparkSession 对象。我认为这是 一个单独的问题。此发布问题的答案可能会有所帮助。

apache-spark pyspark anaconda spyder
1个回答
0
投票

部分答案是快捷方式的目标字段限制为 260 个字符。看起来我并没有在发布的问题中突破该限制,但那是因为我使用 %CONDA_HOME%

 缩写了路径

我将此称为“部分”答案,因为它仍然留下了一些问题。例如,如果我在

"%CONDA_HOME%\env" 脚本中明确使用最终物理行 SpyderSpark.cmd

,则它不起作用。我需要完整的
"%CONDA_HOME%\envs\py39\Scripts\spyder-script.py"
同样,如果查看快捷方式 
Spyder

的目标字段 [

not

 
Spyder (py39)],最终的物理行以 %CONDA_HOME%\Scripts\spyder-script.p
 结尾,缺少扩展名“py”中的“y”。该文件的基本名称更接近完整的 
spyder-script.py
 并且它恰好有 259 个字符长。缺少的“y”是第 260 个字符,这是字段限制。它可能存在但无法访问。
与快捷方式 
Spyder (py39) 相同,其目标字段以 %CONDA_HOME%\env

结束于第 259 个字符。路径的其余部分必须存在,因为快捷方式有效,但由于快捷方式 GUI 面板的限制,路径的其余部分可能无法访问。

这只是基于证据的有根据的猜测。我欢迎更正和更好的解释,例如,如何在无法通过 GUI 面板访问的情况下在“目标”字段中显示文本(以及如何做到这一点,之前是否已观察到)。

© www.soinside.com 2019 - 2024. All rights reserved.