# Problems to build CPLEX

**URL:** <https://discourse.julialang.org/t/problems-to-build-cplex/53671>\
**Category:** Optimization (Mathematical)\
**Created:** [January 20, 2021, 2:43pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671 "2021-01-20T14:43:33Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 2:43pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/1 "2021-01-20T14:43:33Z")

</div>

Dear all,  
I am having a problem to build the CPLEX v 20.10 on my computer. The error message appears:

```julia
Pkg.build("CPLEX")
   Building CPLEX → `C:\Users\Usuário\.julia\packages\CPLEX\DgohF\deps\build.log`
┌ Error: Error building `CPLEX`:
│ ERROR: LoadError: Unable to locate CPLEX installation. Note this must be downloaded separately. See the CPLEX.jl README for further instructions.        
│ Stacktrace:
│ [1] error(::String) at .\error.jl:33
│ [2] try_local_installation() at C:\Users\Usuário\.julia\packages\CPLEX\DgohF\deps\build.jl:64
│ [3] top-level scope at C:\Users\Usuário\.julia\packages\CPLEX\DgohF\deps\build.jl:80
│ [4] include(::String) at .\client.jl:457
│ [5] top-level scope at none:5
│ in expression starting at C:\Users\Usuário\.julia\packages\CPLEX\DgohF\deps\build.jl:77
└ @ Pkg.Operations D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:942

```

Could anyone can help me please?

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 2:45pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/2 "2021-01-20T14:45:48Z")

</div>

Which version of CPLEX.jl are you using ?  
What is the value of the `CPLEX_STUDIO_BINARIES` environment variable ?  
Did you follow the [install instructions](https://github.com/jump-dev/CPLEX.jl#installation) ?

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 2:47pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/3 "2021-01-20T14:47:28Z")

</div>

CPLEX version 20.10  
Yes I have followed exactly the instructions:

```julia
ENV["CPLEX_STUDIO_BINARIES"] = "C:\\Program Files\\CPLEX_Studio1210\\cplex\\bin\\x86-64_win\\"
import Pkg
Pkg.add("CPLEX")
Pkg.build("CPLEX")

```

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 2:50pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/4 "2021-01-20T14:50:13Z")

</div>

By CPLEX.jl, I mean the version of the CPLEX Julia package, you get it with `Pkg.status("JuMP")`. The latest version of CPLEX.jl gives more details on why the build failed. Moreover, older version of CPLEX.jl do not support CPLEX v20.1

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 2:51pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/5 "2021-01-20T14:51:52Z")

</div>

> [@blegat](#):
>
> By CPLEX.jl, I mean the version of the CPLEX Julia package, you get it with `Pkg.status("JuMP")` . The latest version of CPLEX.jl gives more details on why the build failed. Moreover, older version of CPLEX.jl do not support CPLEX v20.1

Sorry,

```julia
[a076750e] CPLEX v0.6.6
[4076af6c] JuMP v0.21.3

```

I have update all packages now.

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 2:55pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/6 "2021-01-20T14:55:44Z")

</div>

CPLEX v20.1 is not supported by CPLEX.jl v0.6.6, the latest version of CPLEX is v0.7.6.  
Try `Pkg.add(Pkg.PackageSpec(name="CPLEX", version="0.7.6"))` (not that you should restart Julia in order to use the new version.

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 3:03pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/7 "2021-01-20T15:03:57Z")

</div>

Not yet:

```julia
julia> Pkg.add(Pkg.PackageSpec(name="CPLEX", version="0.7.7"))
   Updating registry at `C:\Users\Usuário\.julia\registries\General`
   Updating registry at `C:\Users\Usuário\.julia\registries\JuliaComputingRegistry`
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package CPLEX [a076750e]:
 CPLEX [a076750e] log:
 ├─possible versions are: [0.3.3, 0.4.0-0.4.4, 0.5.0-0.5.1, 0.6.0-0.6.6, 0.7.0-0.7.6] or uninstalled
 └─restricted to versions 0.7.7 by an explicit requirement — no versions left
Stacktrace:
 [1] check_constraints(::Pkg.Resolve.Graph) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:935
 [2] Pkg.Resolve.Graph(::Dict{Base.UUID,Set{VersionNumber}}, ::Dict{Base.UUID,Dict{VersionNumber,Dict{String,Base.UUID}}}, ::Dict{Base.UUID,Dict{VersionNumber,Dict{String,Pkg.Types.VersionSpec}}}, ::Dict{Base.UUID,String}, ::Dict{Base.UUID,Pkg.Types.VersionSpec}, ::Dict{Base.UUID,Pkg.Resolve.Fixed}, ::Bool) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:362
 [3] deps_graph(::Pkg.Types.Context, ::Dict{Base.UUID,String}, ::Dict{Base.UUID,Pkg.Types.VersionSpec}, ::Dict{Base.UUID,Pkg.Resolve.Fixed}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:495
 [4] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:367
 [5] targeted_resolve at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1107 [inlined]
 [6] tiered_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1093
 [7] _resolve at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1113 [inlined]
 [8] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Windows) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1128
 [9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Windows, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:189    
 [10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:140
 [11] #add#21 at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67 [inlined]
 [12] add at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67 [inlined]
 [13] #add#19 at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:65 [inlined]
 [14] add(::Pkg.Types.PackageSpec) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:65
 [15] top-level scope at none:1

```

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 3:05pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/8 "2021-01-20T15:05:24Z")

</div>

Sorry, I meant v0.7.6, not v0.7.7 (I have edited the command in my previous post)

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 3:18pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/9 "2021-01-20T15:18:38Z")

</div>

No work yet. There isn’t this version. Thank you for attention.  
Maybe, in future CPLEX 20.1 works on this latest version,

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 3:19pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/10 "2021-01-20T15:19:40Z")

</div>

This function exists, maybe it conflicts with other packages you have. Can you give the error you get when you run `Pkg.add(Pkg.PackageSpec(name="CPLEX", version="0.7.6"))` ?

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 20, 2021, 3:47pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/11 "2021-01-20T15:47:11Z")

</div>

Something very strange:

```julia
julia> Pkg.add(Pkg.PackageSpec(name="CPLEX", version="0.7.6"))
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package VegaLite [112f6efa]:
 VegaLite [112f6efa] log:
 ├─possible versions are: [0.3.4, 0.4.0, 0.5.0-0.5.3, 0.6.0, 0.7.0, 1.0.0, 2.0.0-2.0.1, 2.1.0-2.1.3, 2.2.0, 2.3.0] or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions [0.3.4, 0.4.0, 0.5.0-0.5.3, 0.6.0, 0.7.0, 1.0.0, 2.0.0-2.0.1, 2.1.0-2.1.3, 2.2.0, 2.3.0]
 ├─restricted by compatibility requirements with Requires [ae029012] to versions: [0.7.0, 1.0.0, 2.0.0-2.0.1, 2.1.0-2.1.3, 2.2.0, 2.3.0] or uninstalled, leaving only versions: [0.7.0, 1.0.0, 2.0.0-2.0.1, 2.1.0-2.1.3, 2.2.0, 2.3.0]
 │ └─Requires [ae029012] log:
 │ ├─possible versions are: [0.5.0-0.5.2, 1.0.0-1.0.3, 1.1.0-1.1.2] or uninstalled
 │ └─restricted by compatibility requirements with Weave [44d3d7a6] to versions: [1.0.0-1.0.3, 1.1.0-1.1.2]
 │ └─Weave [44d3d7a6] log:
 │ ├─possible versions are: [0.6.0-0.6.2, 0.7.0-0.7.2, 0.8.0-0.8.1, 0.9.0-0.9.4, 0.10.0-0.10.6] or uninstalled
 │ └─restricted to versions * by an explicit requirement, leaving only versions [0.6.0-0.6.2, 0.7.0-0.7.2, 0.8.0-0.8.1, 0.9.0-0.9.4, 0.10.0-0.10.6]  
 └─restricted by compatibility requirements with JSONSchema [7d188eb4] to versions: [0.3.4, 0.4.0, 0.5.0-0.5.3, 0.6.0] or uninstalled — no versions left   
   └─JSONSchema [7d188eb4] log:
     ├─possible versions are: [0.1.0-0.1.1, 0.2.0, 0.3.0-0.3.3] or uninstalled
     └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: 0.3.0-0.3.3
       └─MathOptInterface [b8f27783] log:
         ├─possible versions are: [0.5.0-0.5.1, 0.6.0-0.6.4, 0.7.0, 0.8.0-0.8.4, 0.9.0-0.9.19] or uninstalled
         ├─restricted by compatibility requirements with Ipopt [b6b21f68] to versions: [0.6.0-0.6.4, 0.7.0, 0.8.0-0.8.4, 0.9.0-0.9.19]
         │ └─Ipopt [b6b21f68] log:
         │ ├─possible versions are: [0.4.1-0.4.5, 0.5.0-0.5.4, 0.6.0-0.6.5] or uninstalled
         │ ├─restricted to versions * by an explicit requirement, leaving only versions [0.4.1-0.4.5, 0.5.0-0.5.4, 0.6.0-0.6.5]
         │ └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: [0.4.5, 0.5.0-0.5.4, 0.6.0-0.6.5] or uninstalled, leaving only versions: [0.4.5, 0.5.0-0.5.4, 0.6.0-0.6.5]
         │ └─MathOptInterface [b8f27783] log: see above
         └─restricted by compatibility requirements with CPLEX [a076750e] to versions: 0.9.19
           └─CPLEX [a076750e] log:
             ├─possible versions are: [0.3.3, 0.4.0-0.4.4, 0.5.0-0.5.1, 0.6.0-0.6.6, 0.7.0-0.7.6] or uninstalled
             └─restricted to versions 0.7.6 by an explicit requirement, leaving only versions 0.7.6
Stacktrace:
 [1] propagate_constraints!(::Pkg.Resolve.Graph, ::Set{Int64}; log_events::Bool) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:1005
 [2] propagate_constraints! at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:946 [inlined] (repeats 2 times)
 [3] simplify_graph!(::Pkg.Resolve.Graph, ::Set{Int64}; clean_graph::Bool) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:1460
 [4] simplify_graph! at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Resolve\graphtype.jl:1460 [inlined] (repeats 2 times)   
 [5] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:368
 [6] targeted_resolve at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1107 [inlined]
 [7] tiered_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1093
 [8] _resolve at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1113 [inlined]
 [9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Windows) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\Operations.jl:1128
 [10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Windows, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:189
 [11] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:140  
 [12] #add#21 at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67 [inlined]
 [13] add at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:67 [inlined]
 [14] #add#19 at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:65 [inlined]
 [15] add(::Pkg.Types.PackageSpec) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\Pkg\src\API.jl:65
 [16] top-level scope at none:1

julia> 

```

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [January 20, 2021, 7:00pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/12 "2021-01-20T19:00:37Z")

</div>

It’s indeed quite weird as JSONSchema is not listed in the packages depending in VegaLite: [JuliaHub](https://juliahub.com/ui/Packages/VegaLite/lrJqi/2.3.0?t=2).  
As a workaround, you can create a local environment: [4. Working with Environments · Pkg.jl](https://julialang.github.io/Pkg.jl/v1/environments/).  
In this environment, you will only add the packages you need so you won’t have incompatibilities between packages you use for different projects.

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [January 20, 2021, 7:06pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/13 "2021-01-20T19:06:40Z")

</div>

There is a compatibility issue with Vegalite: [https://github.com/queryverse/VegaLite.jl/issues/345](https://github.com/queryverse/VegaLite.jl/issues/345)

Run `import Pkg; Pkg.rm("VegaLite"); Pkg.add("CPLEX"); Pkg.update()`. Then restart Julia for the changes to take effect.

---

<div class="post-metadata">

**Author:** ![angeloaliano1](https://avatars.discourse-cdn.com/v4/letter/a/7ea924/32.png) [@angeloaliano1](https://discourse.julialang.org/u/angeloaliano1)\
**Post date:** [January 22, 2021, 8:20pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/14 "2021-01-22T20:20:34Z")

</div>

```julia
] add CPLEX#master

```

Now, CPLEX version `CPLEX v0.7.6` works and was installed.

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [January 22, 2021, 8:43pm UTC](https://discourse.julialang.org/t/problems-to-build-cplex/53671/15 "2021-01-22T20:43:04Z")

</div>

Oops. Yes, I fixed VegaLite but forgot to reply here to tell you.
