我正在使用 Helix 文本编辑器,并尝试向其中添加 Python 语言服务器(链接)。
我使用官方网站上的
.exe
安装了 Python 3。然后我执行这些命令来安装 Python 语言服务器:
C:\Users\ZIGLA> pip config set global.trusted-host "pypi.org files.pythonhosted.org pypi.python.org"
C:\Users\ZIGLA> pip install pip-system-certs
C:\Users\ZIGLA> python.exe -m pip install python-lsp-server
安装成功,但当我尝试运行
pylsp
命令时,我的系统找不到它。当我检查其运行状况时,Helix 编辑器也无法检测到它:
C:\Users\ZIGLA> hx --health
Config file: C:\Users\ZIGLA\AppData\Roaming\helix\config.toml
Language file: C:\Users\ZIGLA\AppData\Roaming\helix\languages.toml
Log file: C:\Users\ZIGLA\AppData\Local\helix\helix.log
Runtime directories: C:\Users\ZIGLA\AppData\Roaming\helix\runtime;C:\Users\ZIGLA\AppData\Roaming\helix\runtime;\\?\C:\Users\ZIGLA\AppData\Roaming\helix\runtime
Clipboard provider: clipboard-win
System clipboard provider: clipboard-win
Language LSP DAP Highlight Textobject Indent
...
python ✘ pylsp None ✓ ✓ ✓
...
首先我检查了
pip
安装Python语言服务器的位置:
C:\Users\ZIGLA> pip list -v
Package Version Location Installer
--------------------- ------- ------------------------------------------------------------- ---------
docstring-to-markdown 0.15 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
jedi 0.19.1 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
parso 0.8.4 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
pip 24.0 C:\Program Files\Python311\Lib\site-packages pip
pip-system-certs 4.0 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
pluggy 1.4.0 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
python-lsp-jsonrpc 1.1.2 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
python-lsp-server 1.11.0 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
setuptools 65.5.0 C:\Program Files\Python311\Lib\site-packages pip
ujson 5.9.0 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
wrapt 1.16.0 C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages pip
我检查这个文件夹:
C:\Users\ZIGLA> ls C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages
Directory: C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 4/16/2024 8:59 PM docstring_to_markdown
d---- 4/16/2024 8:59 PM docstring_to_markdown-0.15.dist-info
d---- 4/16/2024 8:59 PM jedi
d---- 4/16/2024 8:59 PM jedi-0.19.1.dist-info
d---- 4/16/2024 8:59 PM parso
d---- 4/16/2024 8:59 PM parso-0.8.4.dist-info
d---- 4/16/2024 8:58 PM pip_system_certs
d---- 4/16/2024 8:58 PM pip_system_certs-4.0.dist-info
d---- 4/16/2024 8:59 PM pluggy
d---- 4/16/2024 8:59 PM pluggy-1.4.0.dist-info
d---- 4/16/2024 8:59 PM pylsp
d---- 4/16/2024 8:59 PM pylsp_jsonrpc
d---- 4/16/2024 8:59 PM python_lsp_jsonrpc-1.1.2.dist-info
d---- 4/16/2024 8:59 PM python_lsp_server-1.11.0.dist-info
d---- 4/16/2024 8:59 PM ujson-5.9.0.dist-info
d---- 4/16/2024 8:58 PM wrapt
d---- 4/16/2024 8:58 PM wrapt-1.16.0.dist-info
-a--- 4/16/2024 8:58 PM 115 pip_system_certs.pth
-a--- 4/16/2024 8:59 PM 70656 ujson.cp311-win_amd64.pyd
我看到Python语言服务器安装在
pylsp
子文件夹中。但是,当我检查此文件夹时,我看不到任何可执行文件。看起来这是一个 python 模块:
C:\Users\ZIGLA> ls C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages\pylsp\
Directory: C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages\pylsp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 4/16/2024 8:59 PM __pycache__
d---- 4/16/2024 8:59 PM config
d---- 4/16/2024 8:59 PM plugins
-a--- 4/16/2024 8:59 PM 762 __init__.py
-a--- 4/16/2024 8:59 PM 3807 __main__.py
-a--- 4/16/2024 8:59 PM 9866 _utils.py
-a--- 4/16/2024 8:59 PM 23 _version.py
-a--- 4/16/2024 8:59 PM 2353 hookspecs.py
-a--- 4/16/2024 8:59 PM 2050 lsp.py
-a--- 4/16/2024 8:59 PM 35177 python_lsp.py
-a--- 4/16/2024 8:59 PM 2768 text_edit.py
-a--- 4/16/2024 8:59 PM 3834 uris.py
-a--- 4/16/2024 8:59 PM 21846 workspace.py
Helix 编辑器需要此插件。这就是为什么我尝试将此路径添加到
PATH
环境变量中。通过像这样打开我的 Powershell 配置文件:
hx $PROFILE
并在里面添加这一行:
$ENV:PATH += ";C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages\pylsp"
我重新启动了终端,我可以看到该路径已附加在
PATH
: 的末尾
C:\Users\ZIGLA> echo $ENV:PATH
C:\Program Files\PowerShell\7;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files\Python311\Scripts\;C:\Program Files\Python311\;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Citrix\HDX\bin\;C:\Program Files\Citrix\HDX\bin\;C:\Program Files (x86)\Citrix\Workspace Environment Management Agent;C:\Program Files\PowerShell\7\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Azure Dev CLI\;C:\Program Files\PuTTY\;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\160\Tools\Binn\;C:\Program Files\Microsoft SQL Server\160\Tools\Binn\;C:\Program Files\Microsoft SQL Server\160\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\160\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Meld\;C:\Users\ZIGLA\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\ZIGLA\AppData\Local\Programs\Python\Python312\;C:\Users\ZIGLA\AppData\Local\Programs\Python\Launcher\;C:\Users\ZIGLA\AppData\Local\Microsoft\WindowsApps;C:\Users\ZIGLA\AppData\Local\GitHubDesktop\bin;C:\Users\ZIGLA\.dotnet\tools;C:\Users\ZIGLA\AppData\Local\Programs\Git\cmd;C:\Users\ZIGLA\AppData\Local\Microsoft\WinGet\Links;;C:\Users\ZIGLA\AppData\Roaming\helix;C:\Users\ZIGLA\AppData\Roaming\omnisharp-win-x64;C:\Program Files\Meld;C:\Program Files\Windows Application Driver;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE;C:\Users\ZIGLA\AppData\Local\DeviceTestCenter\Tools;C:\Program Files (x86)\Microsoft SQL Server Management Studio 19\Common7\IDE;C:\Users\ZIGLA\AppData\Roaming\Python\Python311\site-packages\pylsp
但是,症状仍然存在。 Helix 在检查其运行状况时无法检测到
pylsp
。
当我尝试卸载语言服务器时,我发现了
pylsp.exe
所在的位置!
C:\Users\ZIGLA> python.exe -m pip uninstall python-lsp-server
Found existing installation: python-lsp-server 1.11.0
Uninstalling python-lsp-server-1.11.0:
Would remove:
c:\users\zigla\appdata\roaming\python\python311\scripts\pylsp.exe
c:\users\zigla\appdata\roaming\python\python311\site-packages\pylsp\*
c:\users\zigla\appdata\roaming\python\python311\site-packages\python_lsp_server-1.11.0.dist-info\*
我一直在向
PATH
添加错误的路径。当我在我的 Powershell 配置文件中添加这一行时:
$ENV:PATH += ";C:\Users\ZIGLA\AppData\Roaming\Python\Python311\scripts"
现在一切正常。