之所以报错 module not found error, no module named "dicom.values"是因为 FSL python 无法调用conda python环境。这是可能是同时装了conda和FSL环境,两者都有Python导致的。
尽管网上有说是pydicom版本的问题,实际上目前的环境版本都正常。
而要修复这个bug,只要通过修改pydicom_compat.py文件就可以完成。
主要修改两处,将 import pydicom 改成 import dicom as pydicom;将 read_file = pydicom.read_file 改成 from pydicom.dicomio import read_file既可。完整的pydicom_compat.py文件路径和对应部分的codes如下。
./fsl/fslpython/envs/fslpython/lib/python3.7/site-packages/nibabel/pydicom_compat.py
try:
import pydicom # dicom as pydicom
except ImportError:
print("dicom does not exist !!! ")
try:
import pydicom
except ImportError:
have_dicom = False
else: # pydicom module available
from pydicom.dicomio import read_file
from pydicom.sequence import Sequence
# Values not imported by default
import pydicom.values
else: # dicom module available
print("dicom exist !!!")
# Values not imported by default
import dicom.values
from dicom.sequence import Sequence
read_file = pydicom.read_file
try:
import dicom as pydicom
except ImportError:
print("dicom does not exist !!! ")
try:
import pydicom
except ImportError:
have_dicom = False
else: # pydicom module available
from pydicom.dicomio import read_file
from pydicom.sequence import Sequence
# Values not imported by default
import pydicom.values
else: # dicom module available
print("dicom exist !!!")
# Values not imported by default
import pydicom.values
from pydicom.sequence import Sequence
from pydicom.dicomio import read_file
对于其他的fsl工具,也需要引用fsl的python而不是conda中提供的
/softwares/fsl/fslpython/envs/fslpython/bin/python
本文介绍了如何处理在安装FSL和conda环境下Python模块冲突问题,重点在于修正pydicom_compat.py文件中的导入问题。通过修改import语句,确保正确引用FSL环境的Python,避免了modulenotfounderror。
3万+

被折叠的 条评论
为什么被折叠?



