0

序文

システム全体にIpythonをインストールしましたが、これは正常に機能していました。ただし、仮想環境で作業していて、そこにipythonをインストールする必要がある場合、そこから実行すると、次のエラーが発生しました。

File "/usr/bin/ipython", line 26, in <module>
    import IPython.Shell
ImportError: No module named Shell

現在の問題

残念ながら、のipythonファイルを誤って削除してしまいました/usr/bin。したがって、仮想環境の内部または外部から呼び出すとipython、次のエラーが発生します。

bash: /usr/bin/ipython: No such file or directory

次のipython関連ファイルが現在あります/usr/bin

/usr/bin$ find ipython*
ipython2.6
ipython2.7
ipython-wx
ipythonx

これらのファイルをすべて削除した場合、システム全体のipythonを新しくインストールすると、これらのファイルが再インストールされますか?(再インストールしたのですが、削除されたファイルが追加されなかったので、疑問がありipythonます。/usr/bin

これを修正するにはどうすればよいですか?

追加情報

私はpython2.7を使用しています

編集

/usr/bin/ipython新しいファイルの最初の行を#!/usr/bin/pythonMonirが提案したように置き換えると、次のエラーが発生します。

Traceback (most recent call last):
  File "/usr/bin/ipython", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2676, in <module>
    parse_requirements(__requires__), Environment()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: ipython==0.13.1
4

1 に答える 1

1

-このqnを閉じるための答えとして置く--

仮想環境内でipython実行可能ファイルを検索し、それを/ usr/binにコピーしてみてください。システム全体のipythonバージョンが仮想環境にインストールされているものと同じである場合、これは機能するはずです。

要求に応じて、/ us / bin/ipythonを貼り付けています。

#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.13.1','console_scripts','ipython'
__requires__ = 'ipython==0.13.1'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')()
)

これはシステムPythonを指しているため、仮想env pythonではなく、必要なシステム全体のパッケージにアクセスできます。virtualenvの外部のディレクトリで「whichpython」を実行し、そのパスをシャバンの後の最初の行に配置します。(おそらく/ usr / bin / pyhtonになります)

-更新:最近のコメントの一部を貼り付けて、この回答を受け入れ、qnを閉じます。

他のすべてが失敗した場合は、システムレベルでipythonを再インストールしてみてください。そもそもそれをすでに試したかどうかはわかりません。

于 2012-12-13T00:26:29.443 に答える