Compatibility Issue with Python 3.12.6
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện ví dụ PySRRegressor được cung cấp với các phiên bản Python, Julia, PySR và juliacall được liệt kê trên Windows 11, sau đó kiểm tra traceback của PythonCall và thông tin về khả năng tương thích. Được coi là hoàn thành khi ví dụ hoàn tất model.fit và in ra phương trình tốt nhất mà không có JuliaError đã báo cáo, đồng thời hành vi tương thích liên quan được ghi lại hoặc được bao phủ bởi một bài kiểm thử phù hợp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Compatibility Issue with Python 3.12.6
I encountered a JuliaError when trying to fit the PySRRegressor model using the PythonCall package. The error seems to be related to the compatibility of the PythonCall package with Python version 3.12.6.
Steps to Reproduce:
1- Install Python 3.12.6.
2- Install the pysr package using pip install pysr.
3- Run the following code:
import numpy as np
from pysr import PySRRegressor
Sample data
X = np.random.rand(100, 1) # 100 samples, 1 feature
y = 3.0 * X[:, 0] + 2.0 # Example target
Initialize PySR model
model = PySRRegressor(
niterations=100, # Number of iterations
binary_operators=["+", "-", "*", "/"], # Allowed binary operators
unary_operators=["sin", "exp", "log"], # Allowed unary operators
loss="L2", # Loss function (mean squared error)
populations=10, # Number of populations
procs=4, # Number of CPU cores to use
parsimony=0.01, # Encourages simpler equations
maxsize=20, # Maximum size of the equation
)
Fit the model
model.fit(X, y)
View the best equation
print("Best equation:", model.sympy())
View the Hall of Fame (top equations)
print(model)
.
.
Expected Behavior: The PySRRegressor model should fit the data without any errors, and the best equation should be printed.
Actual Behavior: The following error occurs:
JuliaError Traceback (most recent call last)
Cell In[34], line 22
10 model = PySRRegressor(
11 niterations=100, # Number of iterations
12 binary_operators=["+", "-", "*", "/"], # Allowed binary operators
(...)
18 maxsize=20, # Maximum size of the equation
19 )
21 # Fit the model
---> 22 model.fit(X, y)
24 # View the best equation
25 print("Best equation:", model.sympy())
File c:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\pysr\sr.py:2279, in PySRRegressor.fit(self, X, y, Xresampled, weights, variable_names, complexity_of_variables, X_units, y_units, category)
2276 self._checkpoint()
2278 # Perform the search:
-> 2279 self._run(X, y, runtime_params, weights=weights, seed=seed, category=category)
2281 # Then, after fit, we save again, so the pickle file contains
2282 # the equations:
2283 if not self.temp_equation_file:
File c:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\pysr\sr.py:1889, in PySRRegressor.run(self, X, y, runtime_params, weights, category, seed)
1886 if isinstance(complexity_of_variables, list):
1887 complexity_of_variables = jl_array(complexity_of_variables)
...
@ PythonCall.JlWrap C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\module.jl:13
[5] pyjl_callmethod(f::Any, self::Ptr{PythonCall.C.PyObject}, args::Ptr{PythonCall.C.PyObject}, nargs::Int64)
@ PythonCall.JlWrap C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\base.jl:67
[6] _pyjl_callmethod(o::Ptr{PythonCall.C.PyObject}, args::Ptr{PythonCall.C.PyObject})
@ PythonCall.JlWrap.Cjl C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\C.jl:63
.
.
.
.
Environment:
-Python version: 3.12.6
-julia version: 1.11.2
-pysr version: 1.3.1
-juliacall version: 0.9.23
-Operating System: [Windows 11 64-bit]
.
.
.
julia> Base.versioninfo()
ERROR: UndefVarError: versioninfo not defined in Base
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] getproperty(x::Module, f::Symbol)
@ Base .\Base.jl:42
[2] top-level scope
@ REPL[1]:1
.
.
.
julia> Pkg.status()
ERROR: UndefVarError: Pkg not defined in Main
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] top-level scope
@ REPL[2]:1
.
.
.
julia> versioninfo()
Julia Version 1.11.2
Commit 5e9a32e7af (2024-12-01 20:02 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 16 × AMD Ryzen 7 4800H with Radeon Graphics
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, znver2)
Threads: 1 default, 0 interactive, 1 GC (on 16 virtual cores)
Environment:
JULIA_PATH = "D:\Backup\Downloads\julia-1.11.2-win64.exe"
.
.
.
Additional Information: I have verified that the JULIA_PATH environment variable is set correctly and that Julia is accessible from the command line. The issue seems to be specific to the compatibility of the PythonCall package with Python 3.12.6.
- Ngôn ngữ chính
- Julia
- Star
- 1.1k
- Fork
- 89
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JuliaPy/PythonCall.jl
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
JuliaPy/PythonCall.jl#828 · 7 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
JuliaPy/PythonCall.jl#809 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Locking julia dependenciesĐang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
JuliaPy/PythonCall.jl#805 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
JuliaPy/PythonCall.jl#796 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
JuliaPy/PythonCall.jl#790 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của JuliaPy/PythonCall.jl
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
EnzymeAD/ReactantServer.jl#103 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
debye_length: strong_zero drops the permittivity's composition dependence from κ derivativesĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
ClapeyronThermo/Clapeyron.jl#649 ·
-
Add DocStringExtensionsĐang mởdocumentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ohno/Antique.jl#165 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
JuliaLang/LinearAlgebra.jl#1749 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100