1

我安装了 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 章末尾。

访问:https ://automatetheboringstuff.com/chapter6/

4

2 回答 2

0

你没有做错任何事;printtable 模块的编写方式与 Python 3 完全不兼容。

由于您已经在使用 pyenv,并且根据pyenv versions您已经安装了 Python 2.7.11 的输出,您可以简单地为该 Python 解释器安装 printtable:

pyenv shell 2.7.11
pip install printtable
于 2016-04-12T06:46:56.983 回答
0

我下载了printtable

pip3 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
于 2016-01-21T07:47:46.013 回答