Skip to content

Can't install package #663

@RRiva

Description

@RRiva

Affects: JuliaCall

Describe the bug

Hi, I'm using pixi to manage the dependencies, and specified in the pyproject.toml

dependencies = [
    "juliacall (>=0.9.0,<1.0.0)",
]

Then, I generated the lock file with pixi lock. I only need 1 Julia package, which I specified in juliapkg.json

{
    "julia": "1.10",
    "packages": {
        "PeriodicMatrices.jl": {
            "uuid": "dd9cd634-6083-4ae5-8f2e-b983833de2bb",
            "version": "0.1.11"
        }
    }
}

For starting, I copy pasted the example from your guide in a python script

from juliacall import Main as jl
jl.println("Hello from Julia!")

Running this file with pixi run python script.py produces

[juliapkg] Found dependencies: c:\users\...\juliapkg.json
[juliapkg] Found dependencies: c:\users\...\.pixi\envs\...\lib\site-packages\juliapkg\juliapkg.json
[juliapkg] Found dependencies: c:\...\.pixi\envs\...\lib\site-packages\juliacall\juliapkg.json
[juliapkg] Locating Julia ^1.10.3
[juliapkg] Using Julia 1.11.6 at C:\Users\...\.julia\juliaup\julia-1.11.6+0.x64.w64.mingw32\bin\julia.exe
[juliapkg] Using Julia project at C:\Users\...\Documents\Projects\wtstab\sysid\.pixi\envs\dev\julia_env
[juliapkg] Writing Project.toml:
             [deps]
             PeriodicMatrices.jl = "dd9cd634-6083-4ae5-8f2e-b983833de2bb"
             PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
             OpenSSL_jll = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
             [compat]
             PeriodicMatrices.jl = "^0.1.11"
             PythonCall = "=0.9.27"
             OpenSSL_jll = "3.0.0 - 3.5"
[juliapkg] Installing packages:
             import Pkg
             Pkg.Registry.update()
             Pkg.add([
               Pkg.PackageSpec(name="PeriodicMatrices.jl", uuid="dd9cd634-6083-4ae5-8f2e-b983833de2bb"),
               Pkg.PackageSpec(name="PythonCall", uuid="6099a3de-0909-46bc-b1f4-468b9a2dfc0d"),
               Pkg.PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),
             ])
             Pkg.resolve()
             Pkg.precompile()
ERROR: TypeError: in typeassert, expected String, got a value of type Dict{String, Any}
Stacktrace:
  [1] get_uuid_name(project::Dict{String, Any}, uuid::Base.UUID)
    @ Base .\loading.jl:3515
  [2] collect_preferences(project_toml::String, uuid::Base.UUID)
    @ Base .\loading.jl:3559
  [3] get_preferences(uuid::Base.UUID)
    @ Base .\loading.jl:3625
  [4] get_preferences_hash(uuid::Base.UUID, prefs_list::Vector{String})
    @ Base .\loading.jl:3638
  [5] stale_cachefile(modkey::Base.PkgId, build_id::UInt128, modpath::String, cachefile::String; ignore_loaded::Bool, requested_flags::Base.CacheFlags, reasons::Dict{String, Int64}, stalecheck::Bool)
    @ Base .\loading.jl:3948
  [6] stale_cachefile
    @ .\loading.jl:3733 [inlined]
  [7] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
    @ Base .\loading.jl:1985
  [8] _require(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:2527
  [9] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2388
 [10] #invoke_in_world#3
    @ .\essentials.jl:1089 [inlined]
 [11] invoke_in_world
    @ .\essentials.jl:1086 [inlined]
 [12] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2375
 [13] macro expansion
    @ .\loading.jl:2314 [inlined]
 [14] macro expansion
    @ .\lock.jl:273 [inlined]
 [15] __require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2271
 [16] #invoke_in_world#3
    @ .\essentials.jl:1089 [inlined]
 [17] invoke_in_world
    @ .\essentials.jl:1086 [inlined]
 [18] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2260
Traceback (most recent call last):
  File "C:\Users\...\script.py", line 1, in <module>
    from juliacall import Main as jl
  File "C:\Users\...\.pixi\envs\...\Lib\site-packages\juliacall\__init__.py", line 288, in <module>
    init()
    ~~~~^^
  File "C:\Users\...\.pixi\envs\...\Lib\site-packages\juliacall\__init__.py", line 160, in init
    CONFIG['exepath'] = exepath = juliapkg.executable()
                                  ~~~~~~~~~~~~~~~~~~~^^
  File "C:\Users\...\.pixi\envs\...\Lib\site-packages\juliapkg\deps.py", line 435, in executable
    resolve()
    ~~~~~~~^^
  File "C:\Users\...\.pixi\envs\...\Lib\site-packages\juliapkg\deps.py", line 396, in resolve
    run(
    ~~~^
        [
        ^
    ...<7 lines>...
        env=env,
        ^^^^^^^^
    )
    ^
  File "C:\Users\...\.pixi\envs\dev\Lib\subprocess.py", line 577, in run
    raise CalledProcessError(retcode, process.args,
                             output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['C:\\Users\\...\\.julia\\juliaup\\julia-1.11.6+0.x64.w64.mingw32\\bin\\julia.exe', '--project=C:\\Users\\...\\.pixi\\envs\\...\\julia_env', '--startup-file=no', '-e', 'import Pkg\nPkg.Registry.update()\nPkg.add([\n  Pkg.PackageSpec(name="PeriodicMatrices.jl", uuid="dd9cd634-6083-4ae5-8f2e-b983833de2bb"),\n  Pkg.PackageSpec(name="PythonCall", uuid="6099a3de-0909-46bc-b1f4-468b9a2dfc0d"),\n  Pkg.PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),\n])\nPkg.resolve()\nPkg.precompile()']' returned non-zero exit status 1.

This package installs perfectly fine with Julia Pkg.

Your system
Please provide detailed information about your system:

  • Windows 11
  • Julia 1.11, python 3.12

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions