在Python 3.4之前,enum
module不是Python的一部分,所以3.2太早;你需要升級,或者你需要活着沒有enum
(升級對你來說是一個好主意;自那時起,Python的性能和功能已經有了明顯的改進;特別是在性能方面,strings and user defined class instances dramatically reduced their memory overhead)。我猜pyvisa
如果它們取決於enum
,則會放棄對3.4以前的Python版本的支持。
cStringIO
是一個Python 2.x加速器模塊StringIO
;在Python 3.0及更高版本中,您只需導入io
並使用io.StringIO
,它將在可用時自動使用C加速代碼,否則將使用純Python代碼。如果您只針對Python 3,只需執行import io
或from 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
將是因爲你嘗試安裝爲Python 2編寫的pyqtgraph
版本; pyqtgraph
頁聲明Python 3.x兼容性,並且使用cStringIO
而沒有回退將不符合該聲明,因此無論是安裝了錯誤版本還是安裝不正確(例如,如果它們使用單個代碼庫和2to3
-ing它,但你以某種方式安裝它沒有2to3
- 它;不知道你會怎麼做)。