2017-04-20 20 views
0

ipython 설치 (우분투 16.04.2이 (주객 관계의) LTS.)수 없습니다 내가 가진 <strong>파이썬 2.7</strong>의 가상 환경을

내가에서 일하고 있어요

: 가상 환경 (가상 환경의 상위 디렉토리에있는 동안 bash는 쉘에서 source venv/bin/activate을 실행 한 후) 나는 쉘과 같이 떠들썩한 파티에서 내 목성의 노트북의 변환을 실행 아무 문제가 없다
ipython nbconvert --to html --execute my_notes.ipynb --stdout > /tmp/report.html 

하지만 subprocess를 사용하여 원단의 작업에서 해당 명령을 호출하기 위해 노력하고있어 때

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' 

더 :

그것은 항상이 예외와 함께 실패
command = ['ipython', 'nbconvert', '--to', 'html', '--execute', notebook_path, '--stdout'] 
output = subprocess.check_output(command, 
           cwd=os.environ['PYTHONPATH'], 
           env=os.environ.copy()) 

나는 그 이유를 찾을 수 없습니다 정보를 보내 시간을 절약하십시오.

이 나는 ​​시도했다 :

  • 같은 경로를 사용 PYTHONPATH을 위해 내가 PyCharm 실행/디버그 구성에서 가지고있다.
  • nbconvert을 파이썬 라이브러리 from this documentation으로 사용하십시오.
  • 시도 됨 os.system("ipython nbconvert…").
  • 셸 스크립트로 작업 명령 (ipython nbconvert…)을 감싸고 subprocess.check_outputos.system에 사용했습니다.
  • 술에 취해 벽돌 벽에 머리를 부딪 힙니다.

항상 저주받은 예외로 끝납니다.

+0

어딘가에'cmd.py'라는 파일이 있습니까? –

+0

오 마이! 네 확실합니다! 그것을 프로젝트 밖으로 옮기면 문제가 해결됩니다! – misanthrope

답변

0

재개시 완전성에 대한 답변으로 :

파이썬이 가져올 수있는 모듈로 발견 된 곳 cmd.py 곳이라는 파일이 있었다. 이것은 표준 라이브러리에있는 cmd module을 섀도 잉하는 것으로, 이는 pdb에 의해 사용되며, IPython이 가져옵니다. pdb가 클래스를 cmd에서 하위 클래스로 만들려고했을 때 그 클래스는 존재하지 않았습니다. cmd.py을 이동하면 필요한 cmd 모듈을 찾을 수 있습니다.

이것은 파이썬에서 불행한 성가심입니다. 짧은 단어가 이미 모듈 이름으로 많이 사용되고 있으며,이를 사용하면 다양한 오류가 발생하여 충돌이 발생합니다.