Python prettytable 没有模块,但是有模块

Python prettytable no module, but module is there

我正在尝试 运行 DrQa 表单 facebook 研究,可在 https://github.com/facebookresearch/DrQA. One of the requirements is prettytable. I had problems installing it, and followed Can't install prettytable:

pip3 install https://pypi.python.org/packages/source/P/PrettyTable/prettytable-0.7.2.tar.bz2

现在我有以下内容:

$ ls -l /usr/lib/python3.5/site-packages
total 1896
drwxr-xr-x  2 root root    4096 Aug 10 17:04 prettytable-0.7.2.dist-info
-rwxr-xr-x  1 root root   54204 Aug 10 17:04 prettytable.py
drwxr-xr-x 22 root root    4096 Aug 10 17:04 scipy
drwxr-xr-x  2 root root    4096 Aug 10 17:04 scipy-0.19.1.dist-info
[truncated] 

正在尝试使用它:

$ python3 scripts/pipeline/interactive.py  
Traceback (most recent call last):
  File "scripts/pipeline/interactive.py", line 12, in <module>
    import prettytable
ImportError: No module named 'prettytable'

我觉得我仍然需要安装模块(这在 link 中提到,但我也怀疑 scipy 没有 .py,而 prettytable 有),但是我不知道怎么。有什么建议吗?

注意:我一直使用python2.7。这是第一次使用python3,也是第一次使用虚拟环境。很可能我在这里犯了一个错误。

注意 2:我在 prettytable.py 上执行了 chmod +x,还尝试使用 sudo 运行 interactive.py 来检查权限问题。

你漏掉了很多重要的信息,让我猜猜看。您在全局安装了 prettytable(在激活虚拟环境之前)但是 运行 python3 scripts/pipeline/interactive.py 在激活一个之后,对吧?

虚拟环境旨在分隔已安装包的组,因此默认情况下全局包在虚拟环境中不可用。你必须在虚拟环境中安装 prettytable:

source venv/bin/activate
pip install https://pypi.python.org/packages/source/P/PrettyTable/prettytable-0.7.2.tar.bz2

或者您必须使用选项 --system-site-packages 重新创建虚拟环境。或者使用来自 virtualenvwrapper.

的命令 toggleglobalsitepackages