2016-10-05 3 views
0

Когда я запускаю код для обновления тегов в DCM-файле, используя SimpleITK 0.10.0 в Python 3 (https://itk.org/SimpleITKDoxygen010/html/Python_2DicomModifyTags_8py-example.html) код работает как описано.При использовании Flask с python 3 и SimpleITK 0.10.0 вместе я получаю AttributeError: type object 'object' не имеет атрибута '__getattr__'

момент я ввести компоненты колбы в коде, чтобы создать API, я получаю

AttributeError: тип объекта «объект» не имеет атрибута «__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", "DERIVED\SECONDARY") 
    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:\python27\lib\site-packages\flask\app.py", line 1988, in wsgi_app 
    response = self.full_dispatch_request() 
    File "c:\python27\lib\site-packages\flask\app.py", line 1641, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "c:\python27\lib\site-packages\flask\app.py", line 1544, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "c:\python27\lib\site-packages\flask\app.py", line 1639, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "c:\python27\lib\site-packages\flask\app.py", line 1625, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "E:\ITK_EXP_10\exp2.py", line 24, in fuse 
    keyable(mean_image, image, key) 
    File "E:\ITK_EXP_10\exp2.py", line 12, in keyable 
    mean_image.SetMetaData(key, image.GetMetaData(key)) 
    File "c:\python27\lib\site-packages\SimpleITK\SimpleITK.py", line 3579, in <lambda> 
    __getattr__ = lambda self, name: _swig_getattr(self, Image, name) 
    File "c:\python27\lib\site-packages\SimpleITK\SimpleITK.py", line 74, in _swig_getattr 
    return _swig_getattr_nondynamic(self, class_type, name, 0) 
    File "c:\python27\lib\site-packages\SimpleITK\SimpleITK.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 - 

я новичок в кодировании питона, на самом деле новичок в кодировании себя, может кто-нибудь, пожалуйста, помогите мне исправить эта проблема, или помочь мне понять проблему, чтобы я мог ее исправить?

Заранее спасибо

ответ

0

проблема была из-за разных версий питона, работающих в PyCharm и терминале. Терминал работал 2,7, а pycharm - 3,5. lib был обновлен в 3.5. извините за путаницу