我正在开发一个web应用django,当我安装openbabel并试图导入pybel时,我遇到了一个错误
我使用的是venv
,当我执行所有这些命令时,它是激活的
我这样安装openbabel:
sudo apt-get install python-openbabel
我也试过:
sudo apt-get install openbabel libopenbabel-dev swig
然后我做了:
pip install openbabel
之后,我尝试导入pybel(在导入openbabel之后)
这是实际结果:
>>> import pybel
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/etudiant/QuChemPedIA/QuChemPedIAProject/venv/lib/python3.5/site-packages/pybel.py", line 94, in <module>
descs = _getpluginnames("descriptors")
File "/home/etudiant/QuChemPedIA/QuChemPedIAProject/venv/lib/python3.5/site-packages/pybel.py", line 84, in _getpluginnames
return [x.split()[0] for x in plugins]
File "/home/etudiant/QuChemPedIA/QuChemPedIAProject/venv/lib/python3.5/site-packages/pybel.py", line 84, in <listcomp>
return [x.split()[0] for x in plugins]
IndexError: list index out of range
有什么帮助吗?在
正如@Manu mathew所说,this is a bug,但不是在Python的
openbabel
包中,而是在它包装的openbabel
C库中(由openbabel
apt包提供)。在这个bug在版本
openbabel/2.3.2+dfsg-3
中得到了修复,对于你的ubuntuxenial(从Python版本来看)is not available。在所以你需要升级你的发行版。修复程序是可用的since Bionic,但为了获得最佳结果,请升级到最新的发行版(请参见下面的解释)。在
除此之外
python-openbabel
apt包是无用的,因为it's for Python 2。python3的包名为“python3-openbabel
”,但是there's no such package。所以您必须从PyPI安装绑定。在apt-get
全局安装Python包,使用pip
将Python包安装到venv中是多余的。apt-get
版本,如果有可用的if you are using the system Python。通过使用^{{Py7>的绑定没有可用的。在这种情况下,最好使用与绑定版本相对应的C库版本,也就是说,可能是最新的版本,因为这种组合显然经过了广泛的测试。在
相关问题 更多 >
编程相关推荐