这是我今天在 filmmaster.com:
遇到的错误PicklingError: Can't pickle <class 'decimal.Decimal'>: it's not the same object as decimal.Decimal
这到底是什么意思?好像没有多大意义…… 它似乎与 django 缓存有关。您可以在此处查看整个回溯:
Traceback (most recent call last): File "/home/filmaster/django-trunk/django/core/handlers/base.py", line 92, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/home/filmaster/film20/film20/core/film_views.py", line 193, in show_film workflow.set_data_for_authenticated_user() File "/home/filmaster/film20/film20/core/film_views.py", line 518, in set_data_for_authenticated_user object_id = self.the_film.parent.id) File "/home/filmaster/film20/film20/core/film_helper.py", line 179, in get_others_ratings set_cache(CACHE_OTHERS_RATINGS, str(object_id) + "_" + str(user_id), userratings) File "/home/filmaster/film20/film20/utils/cache_helper.py", line 80, in set_cache return cache.set(CACHE_MIDDLEWARE_KEY_PREFIX + full_path, result, get_time(cache_string)) File "/home/filmaster/django-trunk/django/core/cache/backends/memcached.py", line 37, in set self._cache.set(smart_str(key), value, timeout or self.default_timeout) File "/usr/lib/python2.5/site-packages/cmemcache.py", line 128, in set val, flags = self._convert(val) File "/usr/lib/python2.5/site-packages/cmemcache.py", line 112, in _convert val = pickle.dumps(val, 2) PicklingError: Can't pickle <class 'decimal.Decimal'>: it's not the same object as decimal.Decimal
电影大师的源代码可以从这里下载:bitbucket.org/filmaster/filmaster-test
任何帮助将不胜感激。
最佳答案
在 jupyter notebook 中运行时出现此错误。我认为问题在于我使用的是 %load_ext autoreload
autoreload 2
。重新启动我的内核并重新运行解决了这个问题。
关于python - PicklingError : Can't pickle <class 'decimal.Decimal' >: it's not the same object as decimal. 十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412787/