4

IPython は私の PYTHONPATH を考慮していないようですが、通常の Python インタープリターは考慮しています。私はWindows 7を使用しています。

私の PYTHONPATH: C:\workspace\python; C:\Python27\Lib\site-packages\spyderlib; C:\ワークスペース\Python\awesim\awesim

sys.path の印刷:

import sys
for i in sorted(sys.path):
    print i

IPythonで取得したものは次のとおりです。

C:\JModelica.org-1.8\Python C:\Python27 C:\Python27\DLLs C:\Python27\lib C:\Python27\lib\lib-tk C:\Python27\lib\plat-win C:\Python27 \lib\site-packages C:\Python27\lib\site-packages\PIL C:\Python27\lib\site-packages\Pythonwin C:\Python27\lib\site-packages\ipython-0.13-py2.7.egg C:\Python27\lib\site-packages\ipython-0.13-py2.7.egg\IPython\extensions C:\Python27\lib\site-packages\numpy-1.6.2-py2.7-win32.egg C: \Python27\lib\site-packages\openpyxl-1.5.8-py2.7.egg C:\Python27\lib\site-packages\pandas-0.8.1-py2.7-win32.egg C:\Python27\lib \site-packages\pyzmq-2.2.0.1-py2.7-win32.egg C:\Python27\lib\site-packages\setuptools-0.6c11-py2.7.egg-info C:\Python27\lib\site- packages\sphinx-1.1.3-py2.7.egg C:\Python27\lib\site-packages\statsmodels-0.4.0-py2.7-win32.egg C:\Python27\lib\site-packages\tornado- 2.3-py2.7.egg C:\Python27\lib\site-packages\win32 C:\Python27\lib\site-packages\win32\lib C:\Python27\lib\site-packages\wx-2.8-msw-unicode C:\Python27\scripts C:\windows\system32\python27.zip

Python コンソールでも同じです。

C:\Python27 C:\Python27\DLLs C:\Python27\Lib\site-packages\spyderlib C:\Python27\lib C:\Python27\lib\lib-tk C:\Python27\lib\plat-win C: \Python27\lib\site-packages C:\Python27\lib\site-packages\PIL C:\Python27\lib\site-packages\Pythonwin C:\Python27\lib\site-packages\ipython-0.13-py2.7 .egg C:\Python27\lib\site-packages\numpy-1.6.2-py2.7-win32.egg C:\Python27\lib\site-packages\openpyxl-1.5.8-py2.7.egg C: \Python27\lib\site-packages\pandas-0.8.1-py2.7-win32.egg C:\Python27\lib\site-packages\pyzmq-2.2.0.1-py2.7-win32.egg C:\Python27 \lib\site-packages\setuptools-0.6c11-py2.7.egg-info C:\Python27\lib\site-packages\sphinx-1.1.3-py2.7.egg C:\Python27\lib\site- packages\statsmodels-0.4.0-py2.7-win32.egg C:\Python27\lib\site-packages\tornado-2.3-py2.7.egg C:\Python27\lib\site-packages\win32 C:\ Python27\lib\site-packages\win32\lib C:\Python27\lib\site-packages\wx-2.8-msw-unicode C:\Workspace\Python\awesim\awesim C:\windows\system32\python27.zip C:\workspace\python

通常の python コンソールには PYTHONPATH が反映されていることがわかりますが、IPython の出力には反映されていません。

手がかりを事前にありがとう。

4

3 に答える 3

4

どうやらこれは、Python と IPython の sys.paths が異なる場合に発生します。

IPython の場合、いくつかの簡単な一時的な解決策は次のようになります。

import sys
sys.path.append('your paths')

個人的には、サブディレクトリを含むプロジェクト ディレクトリに編成されたモジュールを含めるために、これを現在取り組んでいるスクリプトに入れるのが好きです。(PS.忘れないでください:メインディレクトリと目的のサブディレクトリに(空の)__init__.pyファイルが含まれている場合、サブディレクトリはpythonによってパスに含まれます。)

永続的な解決策は、新しい IPython プロファイルを作成することです。

ipython profile create
ipython locate
/Users/username/.ipython

ipython プロファイルに移動して編集します: profile_default/ipython_config.py

以下を追加

c.InteractiveShellApp.exec_lines = [
     'import sys; sys.path.append("you paths")'
 ]

これは Linux で動作し、Windows でも動作するはずです。

于 2017-02-10T22:54:10.077 に答える
2

スタート メニューからリンクされた .exe ランチャーは setuptools によって作成されたものであり、環境を適切にセットアップしない可能性があります (Windows 環境について、確実に言うには十分な知識がなく、それが修正可能かどうかもわかりません)。

しかし、コマンドラインから IPython を起動すると、確実に環境が適切に継承されます。

于 2012-08-31T17:00:38.473 に答える
1

Python 2.6 を実行している Linux で同様の問題を解決しました。

システムパスを無視するように仮想環境を設定していたことがわかりました。

すべてのpythonプログラムを閉じて実行することで修正されました:

virtualenv --system-site-packages ~
于 2014-10-04T19:40:24.190 に答える