Error compiling PyCall with PackageCompiler - Julia 1.5
- Vorherrschende Sprache
- Julia
- Sterne
- 1.5k
- Forks
- 186
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hi,
Apologies if this is not the place to post, but tried to search around for an answer with no luck.
While trying to compile PyCall (SymPy at first) using PackageCompiler, both through VSCode-Extension and directly by calling create_sysimage, I get the following error: FATAL ERROR: Symbol "ccall_PyImport_ImportModule_71184" not found.
`> create_sysimage([:PyCall], sysimage_path="sys_plots.so")`
```
create_sysimage([:PyCall], sysimage_path="sys_plots.so")
[ Info: PackageCompiler: creating system image object file, this might take a while...
FATAL ERROR: Symbol "ccall_PyImport_ImportModule_71184"not found
signal (22): SIGABRT
in expression starting at none:0
crt_sig_handler at /cygdrive/d/buildbot/worker/package_win64/build/src\signals-win.c:92
raise at C:\WINDOWS\System32\msvcrt.dll (unknown line)
abort at C:\WINDOWS\System32\msvcrt.dll (unknown line)
addModule at /cygdrive/d/buildbot/worker/package_win64/build/src\jitlayers.cpp:640
..
..
..
ERROR: failed process: Process(`'C:\dev_sw\Julia\1.5.1\bin\julia.exe' --color=yes --startup-file=no --cpu-target=native '--sysimage=C:\dev_sw\Julia\1.5.1\lib\julia\sys.dll' '--project=c:\dev_sw\JuliaPlay\PrecompileTests\SymPy' '--output-o=C:\Users\alsai\AppData\Local\Temp\jl_r9U8z7vQXT.o'
-e 'Base.reinit_stdio()
@eval Sys BINDIR = ccall(:jl_get_julia_bindir, Any, ())::String
Base.init_load_path()
Base.init_depot_path()
import PyCall
# This @eval prevents symbols from being put into Main
@eval Module() begin
PrecompileStagingArea = Module()
for (_pkgid, _mod) in Base.loaded_modules
if !(_pkgid.name in ("Main", "Core", "Base"))
eval(PrecompileStagingArea, :(const $(Symbol(_mod)) = $_mod))
end
end
precompile_statements = String[]
append!(precompile_statements, readlines("C:\\Users\\alsai\\AppData\\Local\\Temp\\jl_6xuufnlOOc"))
for statement in sort(precompile_statements)
# println(statement)
# The compiler has problem caching signatures with \`Vararg{?, N}\`. Replacing
# N with a large number seems to work around it.
statement = replace(statement, r"Vararg{(.*?), N} where N" => s"Vararg{☺, 100}")
try
Base.include_string(PrecompileStagingArea, statement)
catch
# See julia issue #28808
@debug "failed to execute $statement"
end
end
end # module
empty!(LOAD_PATH)
empty!(DEPOT_PATH)
'`, ProcessExited(3)) [3]
Stacktrace:
[1] pipeline_error at .\process.jl:525 [inlined]
[2] run(::Cmd; wait::Bool) at .\process.jl:440
[3] run at .\process.jl:438 [inlined]
[4] create_sysimg_object_file(::String, ::Array{String,1}; project::String, base_sysimage::String, precompile_execution_file::Array{String,1}, precompile_statements_file::Array{String,1}, cpu_target::String, script::Nothing, isapp::Bool) at C:\Users\alsai\.julia\packages\PackageCompiler\Beagl\src\PackageCompiler.jl:295
[5] create_sysimage(::Array{Symbol,1}; sysimage_path::String, project::String, precompile_execution_file::Array{String,1}, precompile_statements_file::Array{String,1}, incremental::Bool, filter_stdlibs::Bool, replace_default::Bool, cpu_target::String, script::Nothing, base_sysimage::Nothing, isapp::Bool) at C:\Users\alsai\.julia\packages\PackageCompiler\Beagl\src\PackageCompiler.jl:426
[6] top-level scope at REPL[2]:1
```
Tried the compilation test suggested [here](https://github.com/tkf/PyCall.jl/tree/aot/aot), and still get the same error.
Any pointers are appreciated.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Start by reproducing create_sysimage([:PyCall], sysimage_path="sys_plots.so") on the reported Julia 1.5 Windows setup and inspect the PackageCompiler create_sysimage path shown in the stack trace. Compare it with the linked PyCall AOT compilation test; done means identifying the cause of the missing ccall_PyImport_ImportModule_71184 symbol and documenting a verified workaround or fix.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- julia, python
- Bereich
- build-system, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100