Julia添加包时出现TOML解析错误,求解决方案
Julia Pkg操作触发TOML解析错误的解决办法
问题描述
使用VSCode的Julia插件执行Pkg.add("StatsBase")等包管理操作时,所有Pkg相关命令都会触发TOML解析错误,错误信息显示系统尝试解析C:\Users\knirs\AppData\Roaming\Microsoft\Windows\Start Menu\Julia 1.8.2.lnk快捷方式文件,提示存在无效字符。尝试删除manifest_usage.toml文件但未找到该文件。
错误详情
ERROR: Could not parse project: TOML Parser error: C:\Users\knirs\AppData\Roaming\Microsoft\Windows\Start Menu\Julia 1.8.2.lnk:1:2 error: invalid bare key character: '\0' L���☺¶☻������������F���� �����9w6��☺�K:w6��☺�@↑J‼���☻�����☺���������������p☻:�▼DG→♥Yr?�D��U��k0�&�☺�&��►���∟q�Q|��☺��7)}��☺��rQ6��☺¶���t�∟�CFSF▬�1�����CUs�↕�AppData���t→Y^���H�g↨3��(����ߟgVA�G��k6@� �♦��CUh�DU��.���CL∟���♦���������������8w��A�p�p�D�a�t�a���B�P�1�����DU�x►�Local�<� �♦��CUh�DU��.���R�∟���♣���������������↑�w�L�o�c�a�l���¶�Z�1�����DU�►�Programs��B� �♦��wRr�DU�.����#♦��� ���������������U#��J�u�l�i�a�-�1�.�8�.�2���→�J�1�����DU�►�bin�8�� �♦��DU�DU�.����F↔���♠���������������↑���b�i�n���↕�\�2�☻�=U�v �julia.exe�D� �♦��DU�DU�.���B> ���☺�������������������j�u�l�i�a�.�e�x�e���↑���u���∟���☺���∟���4�������t���↑���♥���F�¶Z►���Windows�C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\bin\julia.exe��4�.�.�\�.�.�\�.�.�\�.�.�\�L�o�c�a�l�\�P�r�o�g�r�a�m�s�\�J�u�l�i�a�-�1�.�8�.�2�\�b�i�n�\�j�u�l�i�a�.�e�x�e��C�:\�U�s�e�r�s�\�k�n�i�r�s�∟��� ���|��☺I�J�H��K♦�:���`���♥���X�������desktop-ief50ks�x�↓�c��A��bg�l�8k��♦ D�◄������↓♣x�↓�c��A��bg�l�8k��♦ D�◄������↓♣���� �������1SPS�XF�L8C��‼�&�m�m���♦����▼���.���S�-�1�-�5�-�2�1�-�1�9�9�8�2�8�7�2�4�1�-�3�8�1�2�7�2�7�6�6�-�2�3�2�8�8�7�6�3�2�9�-�1�0�0�1�������9���1SPS�▬mD��pH�H@.�=x�↔���h����H���.▬��MA����'冑������������ ^ Stacktrace: [1] pkgerror(::String, ::Vararg{String}) @ Pkg.Types C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:67 [2] read_project(f_or_io::String) @ Pkg.Types C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\project.jl:138 [3] Pkg.Types.EnvCache(env::Nothing) @ Pkg.Types C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:328 [4] EnvCache @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:325 [inlined] [5] Pkg.Types.Context() @ Pkg.Types .\util.jl:493 [6] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:147 [7] add(pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:145 [8] #add#27 @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:144 [inlined] [9] add @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:144 [inlined] [10] #add#26 @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:143 [inlined] [11] add(pkg::String) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:143 [12] top-level scope @ REPL[2]:1 caused by: TOML Parser error: C:\Users\knirs\AppData\Roaming\Microsoft\Windows\Start Menu\Julia 1.8.2.lnk:1:2 error: invalid bare key character: '\0' L���☺¶☻������������F���� �����9w6��☺�K:w6��☺�@↑J‼���☻�����☺���������������p☻:�▼DG→♥Yr?�D��U��k0�&�☺�&��►���∟q�Q|��☺��7)}��☺��rQ6��☺¶���t�∟�CFSF▬�1�����CUs�↕�AppData���t→Y^���H�g↨3��(����ߟgVA�G��k6@� �♦��CUh�DU��.���CL∟���♦���������������8w��A�p�p�D�a�t�a���B�P�1�����DU�x►�Local�<� �♦��CUh�DU��.���R�∟���♣���������������↑�w�L�o�c�a�l���¶�Z�1�����DU�►�Programs��B� �♦��wRr�DU�.����#♦��� ���������������U#��J�u�l�i�a�-�1�.�8�.�2���→�J�1�����DU�►�bin�8�� �♦��DU�DU�.����F↔���♠���������������↑���b�i�n���↕�\�2�☻�=U�v �julia.exe�D� �♦��DU�DU�.���B> ���☺�������������������j�u�l�i�a�.�e�x�e���↑���u���∟���☺���∟���4�������t���↑���♥���F�¶Z►���Windows�C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\bin\julia.exe��4�.�.�\�.�.�\�.�.�\�.�.�\�L�o�c�a�l�\�P�r�o�g�r�a�m�s�\�J�u�l�i�a�-�1�.�8�.�2�\�b�i�n�\�j�u�l�i�a�.�e�x�e��C�:\�U�s�e�r�s�\�k�n�i�r�s�∟��� ���|��☺I�J�H��K♦�:���`���♥���X�������desktop-ief50ks�x�↓�c��A��bg�l�8k��♦ D�◄������↓♣x�↓�c��A��bg�l�8k��♦ D�◄������↓♣���� �������1SPS�XF�L8C��‼�&�m�m���♦����▼���.���S�-�1�-�5�-�2�1�-�1�9�9�8�2�8�7�2�4�1�-�3�8�1�2�7�2�7�6�6�-�2�3�2�8�8�7�6�3�2�9�-�1�0�0�1�������9���1SPS�▬mD��pH�H@.�=x�↔���h����H���.▬��MA����'冑������������ ^ Stacktrace: [1] parse @ .\toml_parser.jl:441 [inlined] [2] Base.CachedTOMLDict(p::Base.TOML.Parser, path::String) @ Base .\loading.jl:222 [3] (::Base.var"#894#895"{String, Base.TOMLCache})() @ Base .\loading.jl:277 [4] lock(f::Base.var"#894#895"{String, Base.TOMLCache}, l::ReentrantLock) @ Base .\lock.jl:185 [5] parsed_toml @ .\loading.jl:274 [inlined] [6] parse_toml @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:58 [inlined] [7] read_project(f_or_io::String) @ Pkg.Types C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\project.jl:134 [8] Pkg.Types.EnvCache(env::Nothing) @ Pkg.Types C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:328 [9] EnvCache @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\Types.jl:325 [inlined] [10] Pkg.Types.Context() @ Pkg.Types .\util.jl:493 [11] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:147 [12] add(pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:145 [13] #add#27 @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:144 [inlined] [14] add @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:144 [inlined] [15] #add#26 @ C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:143 [inlined] [16] add(pkg::String) @ Pkg.API C:\Users\knirs\AppData\Local\Programs\Julia-1.8.2\share\julia\stdlib\v1.8\Pkg\src\API.jl:143 [17] top-level scope @ REPL[2]:1
解决步骤
检查并切换工作目录
在Julia REPL中执行pwd()查看当前工作目录,如果显示为C:\Users\knirs\AppData\Roaming\Microsoft\Windows\Start Menu,说明Pkg错误地将快捷方式目录当作项目环境目录。执行cd("C:\\Users\\knirs\\.julia\\environments\\v1.8")切换到默认环境目录,或者切换到你的Julia项目所在目录。修正VSCode工作区
关闭当前VSCode窗口,重新打开时选择你的Julia项目文件夹,或者打开空窗口(让Julia自动使用默认环境),避免将Start Menu文件夹设为工作区。重置默认环境文件
- 关闭所有Julia进程和VSCode
- 找到路径
C:\Users\knirs\.julia\environments\v1.8,备份其中的Project.toml和Manifest.toml文件(可选) - 删除这两个文件
- 重新打开Julia,执行
Pkg.update(),系统会自动生成新的环境配置文件
临时移动快捷方式文件
如果上述方法无效,将C:\Users\knirs\AppData\Roaming\Microsoft\Windows\Start Menu\Julia 1.8.2.lnk移动到其他临时目录,再测试Pkg操作,确认是否是该文件导致的解析冲突。
内容的提问来源于stack exchange,提问作者Adam Knirsch
相关产品推荐
相关产品推荐

