14

この投稿に従って、1つのipythonルールですべてのvirtualenvを作成しています。

私が理解していることから、この投稿の主なアイデアは、virtualenvにいるとき、ipythonはそのモジュールを見つけることができないということです。

(a-virtualenv)me@pc:~$ ipython
Traceback (most recent call last):
  File "/usr/bin/ipython", line 19, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
ImportError: No module named IPython.frontend.terminal.ipapp

これを回避するために、これを/ usr / bin/ipythonに追加します

import sys
if "/usr/lib/python2.7/dist-packages" not in sys.path:
    sys.path.append("/usr/lib/python2.7/dist-packages")

このトリックはバルタザールで機能します。しかし、私の場合、私はこれを取得します

Traceback (most recent call last):
  File "/usr/bin/ipython", line 18, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 46, in <module>
    from .frontend.terminal.embed import embed
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/embed.py", line 37, in <module>
    from IPython.frontend.terminal.ipapp import load_default_config
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/ipapp.py", line 38, in <module>
    from IPython.core.completer import IPCompleter
  File "/usr/lib/python2.7/dist-packages/IPython/core/completer.py", line 84, in <module>
    from IPython.utils import generics
  File "/usr/lib/python2.7/dist-packages/IPython/utils/generics.py", line 19, in <module>
    from IPython.external.simplegeneric import generic
  File "/usr/lib/python2.7/dist-packages/IPython/external/simplegeneric/__init__.py", line 4, in <module>
    from _simplegeneric import *
ImportError: No module named _simplegeneric

多分私も追加すべきだと思い/usr/lib/python2.7/dist-packages/IPython/externalましsys.path/usr/bin/ipython。私が得るものは

Traceback (most recent call last):
  File "/usr/bin/ipython", line 18, in <module>
    from IPython.frontend.terminal.ipapp import launch_new_instance
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 43, in <module>
    from .config.loader import Config
  File "/usr/lib/python2.7/dist-packages/IPython/config/loader.py", line 27, in <module>
    from IPython.utils.path import filefind, get_ipython_dir
  File "/usr/lib/python2.7/dist-packages/IPython/utils/path.py", line 24, in <module>
    from IPython.utils.process import system
  File "/usr/lib/python2.7/dist-packages/IPython/utils/process.py", line 27, in <module>
    from ._process_posix import _find_cmd, system, getoutput, arg_split
  File "/usr/lib/python2.7/dist-packages/IPython/utils/_process_posix.py", line 27, in <module>
    from IPython.utils import text
  File "/usr/lib/python2.7/dist-packages/IPython/utils/text.py", line 27, in <module>
    from IPython.external.path import path
ImportError: cannot import name path

このエラーはの43行目で発生しましIPython/__init__pyたが、前のエラーは46行目で発生しました。

  1. ipythonをvirtualenvで動作させるにはどうすればよいですか?

  2. 結果として生じる新しいエラー/usr/lib/python2.7/dist-packages/IPython/externalにどのように追加できますか?sys.path

  3. Pythonのインポートパスをよりよく理解するには、何を読む必要がありますか?

ありがとう!

PS:通常のIPython sys.path

['',
 '/usr/bin',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/python2.7/dist-packages/gst-0.10',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
 '/usr/lib/python2.7/dist-packages/ubuntuone-couch',
 '/usr/lib/python2.7/dist-packages/ubuntuone-installer',
 '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
 '/usr/lib/python2.7/dist-packages/IPython/extensions']
4

9 に答える 9

9

IPython が動作するようになりました!

ipython は simplegeneric を見つけることができないためです。simplegeneric を見つけようとしたところ、simplegeneric が「/usr/lib/pymodules/python2.7」にあることがわかりました。「/usr/lib/pymodules/python2.7」が追加された後、ipython は正常に動作します。

Jeff Tratner のコメントは本当に役に立ちます。

于 2012-07-20T08:13:57.077 に答える
7

ipython3を使用してインストールするapt-getと、そのような問題に直面することはありません。

の代わりに、ターミナルipythonで入力する必要があります。ipython3

Python 2 の場合はipython2.

于 2013-06-18T17:29:55.653 に答える
4

パスを変更しても、何の役にも立ちませんでした。ただし、スーパーユーザーとして ipython を実行するとうまくいきました (私はそれを誇りに思っていませんが!)

sudo ipython
于 2013-10-24T17:41:08.543 に答える
3

pip install ipythonの代わりにapt-get install ipython。前者は virtualenv にインストールされ、後者はシステムの python パッケージにインストールされます。

于 2016-02-23T19:34:32.817 に答える
0

私にとっての解決策は、IPython を 0.13.2 から最新の 4.0.0にアップグレードすることでした。

于 2015-09-09T03:49:38.330 に答える