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

Shortcut for running Spyder specifies non-existent folder

提问人:user2153235 提问时间:10/28/2023 更新时间:10/28/2023 访问量:17

问:

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

我发现在8月到10月之间,情况发生了很大变化。 首先,特定于用户的 Anaconda 主页从 更改为 . 这很容易处理;我只是将一个变量指向 CMD 命令行中的新定位:%USERPROFILE%\anaconda3%USERPROFILE%\AppData\Local\anaconda3CONDA_HOME

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

我将复制的“Spyder(py39)”快捷方式命名为“SpyderSpark (py39)” 并将 Target 字段设置为我自己的脚本: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"

该路径与任何现有文件不对应,或者 文件夹。由于“目标”字段中没有任何内容引用 Spyder,我本来希望弹出“Spyder (py39)”快捷方式 执行时出现错误,但事实并非如此。它启动了Spyder GUI 就好了。%CONDA_HOME%\env

由于我在 ,我将 真的很想知道为什么较新的 Oct/2023 start 命令指定 不存在的路径,根本没有提到Spyder,但是 仍然启动Spyder而不会出错。感谢任何可以的光 对此有所了解。startSpyderSpark.cmd

附言上面的脚本引用了 ,启动了 Spyder,但我正在对 无法实例化 SparkSession 对象。我认为这是 一个单独的问题。这个已发布问题的答案可能会有所帮助。SpyderSpark.cmdspyder-script.py

apache-spark pyspark anaconda spyder

评论


答:

0赞 user2153235 10/28/2023 #1

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

我把这称为部分答案,因为它仍然留下了一些问题。例如,如果我在脚本中显式使用最后一行物理行,则它不起作用。我需要完整的."%CONDA_HOME%\env"SpyderSpark.cmd"%CONDA_HOME%\envs\py39\Scripts\spyder-script.py"

同样,如果查看快捷方式 [not ] 的 Target 字段,则最后的物理行以 结尾,该行在扩展名“py”中缺少“y”。该文件的基本名称更接近完整名称,恰好有 259 个字符长。缺少的“y”是第 260 个字符,即字段限制。它可能存在,但无法访问。SpyderSpyder (py39)%CONDA_HOME%\Scripts\spyder-script.pspyder-script.py

与快捷方式相同,其 Target 字段以第 259 个字符结尾,带有 。路径的其余部分必须存在,因为快捷方式有效,但由于快捷方式 GUI 面板的限制,路径的其余部分可能无法访问。Spyder (py39)%CONDA_HOME%\env

谷歌搜索表示长度限制是由快捷方式属性对话框施加的,并且快捷方式本身可以具有更长的目标。