Django 给出了 AttributeError - '_thread._local'对象没有属性'state'



我正在创建一个django应用程序,它需要使用sympypython包进行数学计算。

为了给你一个所涉及的计算类型的例子,让我们考虑我们有三个方程——

  1. x+y=100
  2. y=200
  3. z+x=300

我使用sympy包的solve((方法计算x、y和z的所有可能值。但是,这会产生AttributeError-'_thread_本地"对象"没有属性"状态">

以下是完整的回溯-

Environment:

Request Method: GET
Request URL: http://127.0.0.1:8000/results/24/
Django Version: 3.0.3
Python Version: 3.6.10
Installed Applications:
['hlasoftware.apps.HlasoftwareConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'storages']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback (most recent call last):
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagesdjangocorehandlersexception.py", line 34, in inner
    response = get_response(request)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagesdjangocorehandlersbase.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagesdjangocorehandlersbase.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:UsersAnjali JainHLAhlasoftwareviews.py", line 163, in results
    reactive_eplets=predict.mfi_predictions(data,cutoff2) #Predict MFI of eplets
  File "C:UsersAnjali JainHLAhlasoftwarePredict_mfi.py", line 282, in mfi_predictions
    sol=solve_eq(list_of_eq,ep)
  File "C:UsersAnjali JainHLAhlasoftwarePredict_mfi.py", line 133, in solve_eq
    sol=solve((list_of_eq),(list_of_var))
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympysolverssolvers.py", line 1096, in solve
    solution = _solve_system(f, symbols, **flags)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympysolverssolvers.py", line 1763, in _solve_system
    result = solve_linear_system(matrix, *symbols, **flags)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympysolverssolvers.py", line 2237, in solve_linear_system
    inv = inv_quick(system[:, :-1])
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympysolverssolvers.py", line 2568, in inv_quick
    return M.inv()
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesmatrices.py", line 2252, in inv
    try_block_diag=try_block_diag)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesinverse.py", line 459, in _inv
    rv = M.inverse_GE(iszerofunc=iszerofunc)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesmatrices.py", line 2236, in inverse_GE
    return _inv_GE(self, iszerofunc=iszerofunc)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesinverse.py", line 242, in _inv_GE
    red = big.rref(iszerofunc=iszerofunc, simplify=True)[0]
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesmatrices.py", line 164, in rref
    pivots=pivots, normalize_last=normalize_last)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesreductions.py", line 306, in _rref
    normalize_last, normalize=True, zero_above=True)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesreductions.py", line 129, in _row_reduce
    normalize=normalize, zero_above=zero_above)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesreductions.py", line 60, in _row_reduce_list
    isimp = _get_intermediate_simp(_dotprodsimp)
  File "C:UsersAnjali Jainanaconda3envshlaenvlibsite-packagessympymatricesutilities.py", line 34, in _get_intermediate_simp
    if dotprodsimp is False or _dotprodsimp_state.state is False:
Exception Type: AttributeError at /results/24/
Exception Value: '_thread._local' object has no attribute 'state'

我尝试了以下技巧,但都给出了相同的错误-

  1. 重新安装症状包
  2. 使用python manage.py--runserver--nothreading
  3. 使用python manage.py--runserver--nothreading--noreload

如有任何关于如何解决此错误的建议/反馈,我们将不胜感激。请帮帮我!

这是sympy 1.6.1中的一个错误,虽然修复程序尚未发布,但已经修复:https://github.com/sympy/sympy/issues/19809

您可以使用sympy 1.6.0或git中的最新sympy master,也可以手动应用修复程序。

最新更新