我有点麻烦要解决。我使用的是32位Python3.2和pyvisa的Python3.2。当我使用的时候:
import pyvisa它显示:
ImportError: No module named enum但是当我使用的时候:
import pyqtgraph, pyvisa我得到了:
ImportError: No module named cStringIO我只想用pyvisa来使用GPIB的Agilent33250a。
发布于 2015-12-10 09:53:45
enum module直到Python3.4才成为Python的一部分,因此3.2版本还为时过早;您需要升级,否则您需要在没有enum的情况下生活(请记住,升级是一个好主意;从那时起,Python的性能和特性有了显著的提高;特别是在性能方面,strings and user defined class instances dramatically reduced their memory overhead)。我猜如果依赖于enum,pyvisa会放弃对早于3.4的Python版本的支持。
cStringIO是用于StringIO的Python2.x唯一的加速器模块;在Python3.0和更高版本中,您只需导入io并使用io.StringIO,它将在可用时自动使用C加速代码,否则将自动使用纯Python代码。如果你只针对Python3,那就使用import io或from io import StringIO吧。对于应该在Python2和Python3下运行的代码,并且在两者中都使用str,您可以对导入执行以下操作:
try:
from cStringIO import StringIO # Py2 C accelerated version
except ImportError:
try:
from StringIO import StringIO # Py2 fallback version
except ImportError:
from io import StringIO # Py3 version如果您想处理与Python版本无关的Unicode文本(好吧,在2.6和更高版本中),您可以只使用io.StringIO;它可以在Py2中使用unicode,在Py3中使用str,这意味着它可以处理这两个版本中的所有文本( cStringIO只处理Py2中的str,所以它不能处理整个Unicode范围)。
我怀疑你的其他pyqtgraph导入错误可能是因为你试图安装一个为Python2编写的pyqtgraph版本;pyqtgraph页面声称Python3.x兼容,而使用没有回退的cStringIO将不符合这一要求,所以要么你安装了错误的版本,要么它安装得不正确(例如,如果他们使用单个代码库并2to3-ing it,但你不知何故安装了它而没有2to3-ing it;不知道如何做到这一点)。
https://stackoverflow.com/questions/33604801
复制相似问题