PYVISA中的ENUM模块和cStringIO模块

2024-09-23 16:21:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些麻烦要解决。我正在使用带有pyvisa的python3.2作为python3.2 32位。当我使用:

import pyvisa

它显示:

ImportError: No module named enum

但当我使用:

import pyqtgraph, pyvisa

我得到:

ImportError: No module named cStringIO

我只想用pyvisa来使用agilent33250a by GPIB。你知道吗


Tags: noimportbyenumnamedpyqtgraphmodulegpib
1条回答
网友
1楼 · 发布于 2024-09-23 16:21:22

在python3.4之前,^{} module并不是Python的一部分,因此3.2还太早;您需要升级,或者您需要离开enum(请注意,升级是个好主意;Python的性能和特性从那时起有了显著的提高;特别是在性能方面,strings and user defined class instances dramatically reduced their memory overhead)。我猜pyvisa如果依赖于enum,就会放弃对3.4以上的Python版本的支持。你知道吗

cStringIO是仅用于StringIO的Python2.x加速模块;在Python3.0及更高版本中,您只需导入io并使用io.StringIO,它将在可用时自动在引擎盖下使用C加速代码,否则将使用纯Python代码。如果您只针对python3,只需执行import iofrom io import StringIO。对于应同时在Python 2和Python 3下运行并同时使用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

如果您想处理Unicode文本而不考虑Python版本(在2.6及更高版本中),您可以只使用io.StringIO;它在Py2中与unicode一起工作,在Py3中与str一起工作,这意味着它处理两个版本中的所有文本(其中cStringIO只处理Py2中的str,因此它不能处理整个Unicode范围)。你知道吗

我怀疑pyqtgraph的另一个导入错误可能是因为您尝试安装为Python2编写的pyqtgraph版本;pyqtgraph页声明Python3.x兼容,使用cStringIO而不使用回退将无法满足该声明,因此要么安装了错误的版本,或者它的安装不正确(例如,如果他们使用的是单个代码基并且2to3-ing它,但是您不知怎么安装了它而没有2to3-ing它;不知道您会怎么做)。你知道吗

相关问题 更多 >