Closed Mingyuan1231 closed 2 days ago
Have you tried the following?
git clone https://github.com/QuantumSavory/QuantumClifford.jl.git to create the install manually.
# suppose, /home/samplepath/QuantumClifford is a path,
# to where QuantumClifford.jl is installed.
julia> Pkg.activate("/home/samplepath/QuantumClifford.jl")
julia> Pkg.instantiate()
julia> Pkg.update()
julia> Pkg.resolve()
There seems to be some packages missing comparing to the output of your Pkg.status()
. I did Pkg.update()
today, but the output should be similar to the following. For example, the result of Pkg.status()
is:
julia> Pkg.status()
Project QuantumClifford v0.9.11
Status `~/Desktop/coprime/QuantumClifford.jl/Project.toml`
[861a8166] Combinatorics v1.0.2
[864edb3b] DataStructures v0.18.20
[ffbed154] DocStringExtensions v0.9.3
[86223c79] Graphs v1.12.0
[3e5b6fbb] HostCPUFeatures v0.1.17
β
[2cd5bd5f] ILog2 v0.2.4
[1914dd2f] MacroTools v0.5.13
[2edaba10] Nemo v0.47.1
[aea7be01] PrecompileTools v1.2.1
[5717a53b] QuantumInterface v0.3.6
[fdea26ae] SIMD v3.6.0
[8e1ec7a9] SumTypes v0.5.8
[b77e0a4c] InteractiveUtils
[37e2e46d] LinearAlgebra
[9a3f8284] Random
[2f01184e] SparseArrays v1.10.0
[10745b16] Statistics v1.10.0
Info Packages marked with β
have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`
It seems you don't have Nemo
installed from your Pkg.status()
output that's why the FLINT
error. Nemo
uses FLINT
. see: https://github.com/Nemocas/Nemo.jl/blob/master/Project.toml or checkout their ReadMe. Nemo
provide wrappers the FLINT C
library
@Fe-r-oz , thanks for the suggestion, but a user should not need to clone the repository. Installations are supposed to work on released versions without extra work.
@Mingyuan1231 , thanks for reporting, we will try to reproduce and ping you for more details if we can not.
@Mingyuan1231 , I can not reproduce this in a new environment, so it is probably something specific to your windows system. Nonetheless, this is something we would not want to happen with our library. Below are some suggestions for troubleshooting.
This part of the error message seems most important: ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_Hz4DjX\\bin"): directory not empty (ENOTEMPTY)
-- during the installation process, Julia is trying to remove a previously installed binary artifact (a non-Julia code that some julia library needs, probably something related to the computer algebra system Nemo on which we depend), but it fails to remove the artifact because the folder where it is stored has been modified.
Most probably this is some unpleasant interaction between Julia and whatever anti-virus system you are running on your windows installation (antivirus systems frequently clash with dev environments in many languages). Or it is just some edge-case bug in the Julia package manager.
To solve this issue, could try manually deleting your artifacts folder C:\\Users\\wmy19\\.julia\\artifacts
-- that will cause a ton of things to need to be reinstalled, but afterwards it should hopefully work fine.
For reference, it seems it is at least partially related to this issue in the package manager https://github.com/JuliaLang/Pkg.jl/issues/3822 which also seems to be due to a windows antivirus interfering with Julia. It seems they have added specific error messages to warn the user about stuff like this in newer versions of the package manager.
@Krastanov It turns out that manually delete the folder doesn't work. The error message folder name will change for each install attempt.
I tried uninstalling the Julia and delete .julia folder and reinstalled, the error still occurred.
I also tried to deactivate windows antivirus system, still not working.
oh, that is worrisome. You have done all the things I would have suggested (I would even say that uninstalling julia was unnecessary).
To confirm: it is indeed a good idea (although maybe a bit draconian) to nuke the entire .julia
folder and to completely disable the antivirus. The fact that it is still not working puzzles me.
While I am trying to reproduce this, could you try the following: again set up a clean environment, install the plotting packages that you mentioned at the beginning and then try to install Nemo (NOT QuantumClifford). I want to confirm the issue is indeed around the Nemo dependancy.
@Krastanov Looks like the issue is indeed around the Nemo:
(@v1.10) pkg> activate D:\NemoTest
Activating new project at `D:\NemoTest`
(NemoTest) pkg> add CairoMakie
(NemoTest) pkg> add AlgebraOfGraphics
(NemoTest) pkg> add DataFrames
(NemoTest) pkg> st
Status `D:\NemoTest\Project.toml`
[cbdf2221] AlgebraOfGraphics v0.8.11
[13f3f980] CairoMakie v0.12.12
[a93c6f00] DataFrames v1.7.0
(NemoTest) pkg> add Nemo
Resolving package versions...
Failure artifact: FLINT
ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_J9xank\\bin"): directory not empty (ENOTEMPTY)
Stacktrace:
[1] uv_error
@ .\libuv.jl:100 [inlined]
[2] rm(path::String; force::Bool, recursive::Bool)
@ Base.Filesystem .\file.jl:307
[3] rm(path::String; force::Bool, recursive::Bool)
@ Base.Filesystem .\file.jl:294
[4] rm
@ .\file.jl:273 [inlined]
[5] download_artifact(tree_hash::Base.SHA1, tarball_url::String, tarball_hash::Nothing; verbose::Bool, quiet_download::Bool, io::Base.TTY)
@ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:376
[6] download_artifact (repeats 2 times)
@ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:297 [inlined]
[7] #22
@ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:423 [inlined]
[8] with_show_download_info(f::Pkg.Artifacts.var"#22#24"{Bool, Bool, Base.TTY, Base.SHA1, String}, io::Base.TTY, name::String, quiet_download::Bool)
@ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:481
[9] ensure_artifact_installed(name::String, meta::Dict{String, Any}, artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, verbose::Bool, quiet_download::Bool, io::Base.TTY)
@ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:422
[10] download_artifacts(env::Pkg.Types.EnvCache; platform::Base.BinaryPlatforms.Platform, julia_version::VersionNumber, verbose::Bool, io::Base.TTY)
@ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:755
[11] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
@ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1394
[12] add
@ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1376 [inlined]
[13] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::@Kwargs{io::Base.TTY})
@ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:278
[14] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{})
@ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:159
[15] add(pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:148
[16] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
@ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:412
[17] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
@ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:390
[18] do_cmd
@ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:380 [inlined]
[19] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:557
[20] #invokelatest#2
@ .\essentials.jl:892 [inlined]
[21] invokelatest
@ .\essentials.jl:889 [inlined]
[22] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\LineEdit.jl:2656
[23] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:1312
[24] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
@ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:386
apologies for all the different request for diagnostics, but could you try the following two as well (again in a new clean environment):
There is some error message during installing Nemo, but the installation is completed.
(@v1.10) pkg> activate D:\NemoFirst
Activating new project at `D:\NemoFirst`
(NemoFirst) pkg> add Nemo
Resolving package versions...
Downloading artifact: FLINT
β Error: Tree Hash Mismatch!
β Expected git-tree-sha1: 12b1a924ee8229f59edd96f05ec588456b1ced55
β Calculated git-tree-sha1: 42a0e0825251f98b696948213bc4c5dcbe2c071f
β
β System is Windows and user cannot create symlinks: ignoring hash mismatch and moving artifact to the expected locationβ @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifact Downloaded artifact: FLINT
Downloaded artifact: OpenBLAS32
Updating `D:\NemoFirst\Project.toml`
[2edaba10] + Nemo v0.47.1
Updating `D:\NemoFirst\Manifest.toml`
[c3fe647b] + AbstractAlgebra v0.43.2
[692b3bcd] + JLLWrappers v1.6.0
[1914dd2f] + MacroTools v0.5.13
[2edaba10] + Nemo v0.47.1
[21216c6a] + Preferences v1.4.3
[fb686558] + RandomExtensions v0.4.4
[e134572f] + FLINT_jll v300.100.300+0
β
[656ef2d0] + OpenBLAS32_jll v0.3.24+0
[0dad84c5] + ArgTools v1.1.1
[56f22d72] + Artifacts
[2a0f44e3] + Base64
[ade2ca70] + Dates
[f43a241f] + Downloads v1.6.0
[7b1f6079] + FileWatching
[b77e0a4c] + InteractiveUtils
[b27032c2] + LibCURL v0.6.4
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[ca575930] + NetworkOptions v1.2.0
[44cfe95a] + Pkg v1.10.0
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA v0.7.0
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[2f01184e] + SparseArrays v1.10.0
[fa267f1f] + TOML v1.0.3
[a4e569a6] + Tar v1.10.0
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
[e66e0078] + CompilerSupportLibraries_jll v1.1.1+0
[781609d7] + GMP_jll v6.2.1+6
[deac9b47] + LibCURL_jll v8.4.0+0
[e37daf67] + LibGit2_jll v1.6.4+0
[29816b5a] + LibSSH2_jll v1.11.0+1
[3a97d323] + MPFR_jll v4.2.0+1
[c8ffd9c3] + MbedTLS_jll v2.28.2+1
[14a3606d] + MozillaCACerts_jll v2023.1.10
[4536629a] + OpenBLAS_jll v0.3.23+4
[bea87d4a] + SuiteSparse_jll v7.2.1+1
[83775a58] + Zlib_jll v1.2.13+1
[8e850b90] + libblastrampoline_jll v5.11.0+0
[8e850ede] + nghttp2_jll v1.52.0+1
[3f19e933] + p7zip_jll v17.4.0+2
Info Packages marked with β
have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
5 dependencies successfully precompiled in 21 seconds. 10 already precompiled.
(NemoFirst) pkg> st
Status `D:\NemoFirst\Project.toml`
[2edaba10] Nemo v0.47.1
After install Nemo first, the rest of graphics library can be installed correctly. But there is another warning report during install QuantumClifford:
(NemoFirst) pkg> add QuantumClifford
Resolving package versions...
Updating `D:\NemoFirst\Project.toml`
[0525e862] + QuantumClifford v0.9.11
Updating `D:\NemoFirst\Manifest.toml`
[ec485272] + ArnoldiMethod v0.4.0
[62783981] + BitTwiddlingConvenienceFunctions v0.1.6
[861a8166] + Combinatorics v1.0.2
[f70d9fcc] + CommonWorldInvalidations v1.0.0
[86223c79] + Graphs v1.12.0
[3e5b6fbb] + HostCPUFeatures v0.1.17
β
[2cd5bd5f] + ILog2 v0.2.4
[615f187c] + IfElse v0.1.1
[0525e862] + QuantumClifford v0.9.11
[5717a53b] + QuantumInterface v0.3.6
[aedffcd0] + Static v1.1.1
[8e1ec7a9] + SumTypes v0.5.8
Info Packages marked with β
have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
4 dependencies successfully precompiled in 23 seconds. 276 already precompiled.
1 dependency had output during precompilation:
β QuantumClifford
β WARNING: using QuantumClifford.I in module ECC conflicts with an existing identifier.
β WARNING: using LinearAlgebra.I in module QuantumClifford conflicts with an existing identifier.
β
(NemoFirst) pkg> st
Status `D:\NemoFirst\Project.toml`
[cbdf2221] AlgebraOfGraphics v0.8.11
[13f3f980] CairoMakie v0.12.12
[a93c6f00] DataFrames v1.7.0
[2edaba10] Nemo v0.47.1
[0525e862] QuantumClifford v0.9.11
Those warnings can be disregarded. I will take care of fixing them on the next release. It sounds like things are now working, so I will close this issue. Not quite sure what in Nemo was causing it.
Describe the bug π
Cannot install the newest version of QuantumClifford.
Expected behavior
I expected it should be installed.
Minimal Reproducible Example π
Without MRE, we would only be able to help you to a limited extent, and attention to the issue would be limited. to know more about MRE refer to wikipedia and stackoverflow.
Error & Stacktrace or other complete output produced by the MRE β οΈ
Environment (please complete the following information):
using Pkg; Pkg.status()
using Pkg; Pkg.status(; mode = PKGMODE_MANIFEST)
versioninfo()
Additional context
In my pervious environment where QuantumClifford has installed, other package cannot update.