我安装了pyenv来管理不同版本的Python,并使用pip install printtable
下载并安装printtable
。
但是当我在交互式shell中导入此模块时,它不起作用并显示ImportError
。
$ pyenv versions
system
2.7.11
* 3.5.1 (set by /Users/apple/.pyenv/version)
$ pip list
pip (8.0.0)
printtable (1.2)
setuptools (18.2)
$ python
Python 3.5.1 (default, Jan 21 2016, 12:50:43)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import printtable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/apple/.pyenv/versions/3.5.1/lib/python3.5/site-packages/printtable/__init__.py", line 1, in <module>
from printtable import PrintTable
ImportError: cannot import name 'PrintTable'
如何在pyenv中管理模块?
PS。我正在逐步关注这本书Automate the boring stuff
。 printtable
部分在第6章的末尾。
答案 0 :(得分:0)
我用
下载了 printtablepip3 install --download /tmp printtable
并检查了 printtable-1.2.tar.gz 的竞争对手。在 printtable / printtable.py 中有代码,如
def printTable(self,line_num=0):
....
print self.StrTable
表示此包不兼容python 3。
可以通过
安装此模块tar xfv printtable-1.2.tar.gz
cd printtable-1.2/
2to3-3.5 --write printtable/*.py tests/*.py
python3.5 setup.py build
python3.5 setup.py install
答案 1 :(得分:0)
你没有做错任何事; printtable模块的编写方式与Python 3完全不兼容。
由于您已经在使用pyenv,并且根据pyenv versions
的输出已经安装了Python 2.7.11,您只需为该Python解释器安装printtable:
pyenv shell 2.7.11
pip install printtable