无法从 运行 IPython nbconvert Python2.7 虚拟环境

Unable To Run IPython nbconvert From Python2.7 Virtual Environment

我有一个 Python 2.7 的虚拟环境,安装了 ipython (Ubuntu 16.04.2(Xenial)LTS。)

当我在虚拟环境中工作时(运行 source venv/bin/activate in bash shell while being in虚拟环境的父目录)我可以像这样从 bash shell 执行我的木星笔记本的转换:

ipython nbconvert --to html --execute my_notes.ipynb --stdout > /tmp/report.html 

但是当我尝试使用 subprocess 从 fabric 的任务中调用该命令时:

command = ['ipython', 'nbconvert', '--to', 'html', '--execute', notebook_path, '--stdout']
output = subprocess.check_output(command,
                                 cwd=os.environ['PYTHONPATH'],
                                 env=os.environ.copy())

它总是因为这个异常而失败我找不到原因:

Traceback (most recent call last):
  File "/opt/backend/venv/bin/ipython", line 7, in <module>
    from IPython import start_ipython
  File "/opt/backend/venv/local/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/opt/backend/venv/local/lib/python2.7/site-packages/IPython/core/application.py", line 25, in <module>
    from IPython.core import release, crashhandler
  File "/opt/backend/venv/local/lib/python2.7/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/opt/backend/venv/local/lib/python2.7/site-packages/IPython/core/ultratb.py", line 119, in <module>
    from IPython.core import debugger
  File "/opt/backend/venv/local/lib/python2.7/site-packages/IPython/core/debugger.py", line 46, in <module>
    from pdb import Pdb as OldPdb
  File "/usr/lib/python2.7/pdb.py", line 59, in <module>
    class Pdb(bdb.Bdb, cmd.Cmd):
AttributeError: 'module' object has no attribute 'Cmd'

了解更多信息以节省您的时间。

我试过:

并且总是以那个该死的异常结束。

重新发布作为完整性的答案:

在某个地方有一个名为 cmd.py 的文件,Python 发现它是一个可导入的模块。这隐藏了标准库中的 cmd module,它由 IPython 导入的 pdb 使用。当 pdb 试图从 cmd 子class a class 时,class 不存在。将 cmd.py 移开,让它找到所需的 cmd 模块。

这对 Python 来说是一个不幸的烦恼 - 许多短词已被用作模块名称,您自己使用它们会导致崩溃,并出现各种不同的错误。