#python-3.x #flask #flask-restful
#python-3.x #flask #flask-restful
Вопрос:
Когда я запускаю код для обновления тегов в файле DCM с использованием SimpleITK 0.10.0 в Python 3 (https://itk.org/SimpleITKDoxygen010/html/Python_2DicomModifyTags_8py-example.html ) код работает так, как было объяснено.
в тот момент, когда я ввожу компоненты flask в код для создания API, я получаю
AttributeError: тип объекта ‘object’ не имеет атрибута ‘__getattr__’
ошибка. Код, который я использовал, выглядит следующим образом
from __future__ import print_function
import SimpleITK
from flask import Flask
import time
app = Flask(__name__)
@app.route('/fuse')
def fuse():
image = SimpleITK.ReadImage("CT/IMG-0002-000001.dcm")
mean_image = SimpleITK.BoxMean( image, [3,3,1])
all_keys = image.GetMetaDataKeys()
for key in all_keys:
mean_image.SetMetaData(key, image.GetMetaData(key))
mean_image.SetMetaData("0008|0008", "DERIVEDSECONDARY")
modification_time = time.strftime("%H%M%S")
modification_date = time.strftime("%Y%m%d")
mean_image.SetMetaData("0008|0031", modification_time)
mean_image.SetMetaData("0008|0021", modification_date)
print(mean_image.GetMetaData("0008|0031"))
return "finish"
ошибка, которую я получаю, приведена ниже
[2016-10-05 14:47:05,816] ERROR in app: Exception on /fuse [GET]
Traceback (most recent call last):
File "c:python27libsite-packagesflaskapp.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "c:python27libsite-packagesflaskapp.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "c:python27libsite-packagesflaskapp.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "c:python27libsite-packagesflaskapp.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "c:python27libsite-packagesflaskapp.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "E:ITK_EXP_10exp2.py", line 24, in fuse
keyable(mean_image, image, key)
File "E:ITK_EXP_10exp2.py", line 12, in keyable
mean_image.SetMetaData(key, image.GetMetaData(key))
File "c:python27libsite-packagesSimpleITKSimpleITK.py", line 3579, in <lambda>
__getattr__ = lambda self, name: _swig_getattr(self, Image, name)
File "c:python27libsite-packagesSimpleITKSimpleITK.py", line 74, in _swig_getattr
return _swig_getattr_nondynamic(self, class_type, name, 0)
File "c:python27libsite-packagesSimpleITKSimpleITK.py", line 69, in _swig_getattr_nondynamic
return object.__getattr__(self, name)
AttributeError: type object 'object' has no attribute '__getattr__'
127.0.0.1 - - [05/Oct/2016 14:47:05] "GET /fuse HTTP/1.1" 500 -
127.0.0.1 - - [05/Oct/2016 14:47:05] "GET /favicon.ico HTTP/1.1" 404 -
я новичок в кодировании на python, на самом деле новичок в самом кодировании, может кто-нибудь, пожалуйста, помочь мне исправить эту проблему или помочь мне понять проблему, чтобы я мог ее исправить?
Заранее спасибо
Ответ №1:
проблема заключалась в том, что разные версии python работали в pycharm и terminal. На терминале был запущен 2.7, а pycharm — 3.5. библиотека была обновлена в версии 3.5. извините за путаницу