为了能将scanpy的h5ad文件和seurat的sce文件互相转换,因为有些包只能在R里使用,所以得使用scdior,,这要控制scanpy的版本,我选择了scanpy1.8.1,官网还要控制seurat的版本
但是出现报错,如下
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
先把matplotlib降到3.7版本以下,我选的是3.6,conda实际安装的是3.6.2
然后就又报错了SystemError: initialization of _internal failed without raising an exception
conda install numpy=1.23.5
然后这个会把matplotlib、scanpy也删除
这里再重新安装scanpy和 matplotlib
conda install -c conda-forge scanpy=1.8.1
然后又报错ImportError: cannot import name 'is_categorical' from 'pandas.api.types' (/share/home/dddd/.conda/envs/scdiopy/lib/python3.8/site-packages/pandas/api/types/__init__.py)
查找原因,发现
移除原来的pandas,这一步会同时移除matplotlib base以及scanpy
安装pandas=1.5.3
为何是1.5.3而不是1.9呢
因为
所以 conda install pandas=1.5.3
再按照上面的重新安装matplotlib以及scanpy
总之,scanpy=1.8.1需要pandas=1.5.3,numpy=1.23.5,matplotlib=3.6.2
现在就不报错了
但是读取h5ad文件出错AnnDataReadError: Above error raised while reading key '/layers' of type <class 'h5py._hl.group.Group'> from /.
这里需要升级anndata到0.8.0
conda install anndata=0.8.0 -c conda-forge
然后还报错是h5py的版本问题
pip install h5py==2.10.0
找到了一个scanpy=1.8.2的相关依赖包的CSDN博客,可以参考
https://blog.csdn.net/qq_52813185/article/details/128422965
最后安装diopy
pip install diopy
标签:scanpy1.8,conda,matplotlib,scanpy,install,旧版本,import,报错,pandas From: https://blog.csdn.net/aydayUP111/article/details/139393007