Ipython的sys.path与python不同,并且不使用PYTHONPATH?

Ipython的sys.path与python不同,并且不使用PYTHONPATH?,python,ipython,pythonpath,Python,Ipython,Pythonpath,看起来IPython没有考虑我的PYTHONPATH,而普通的python解释器会考虑它。我在Windows7上 我的蟒蛇: C:\workspace\python; C:\Python27\Lib\site packages\spyderlib; C:\Workspace\Python\awesim\awesim 打印sys.path: import sys for i in sorted(sys.path): print i 以下是我在IPython中学到的: C:\JModeli

看起来IPython没有考虑我的PYTHONPATH,而普通的python解释器会考虑它。我在Windows7上

我的蟒蛇: C:\workspace\python; C:\Python27\Lib\site packages\spyderlib; C:\Workspace\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\dll C:\Python27\lib C:\Python27\lib\lib-tk C:\Python27\lib\plat-win C:\Python27\lib\site包 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\dll C:\Python27\Lib\site packages\spyderlib C:\Python27\lib C:\Python27\lib\lib-tk C:\Python27\lib\plat-win C:\Python27\lib\site包 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输出不反映


感谢您事先提供的线索。

从“开始”菜单链接的.exe启动器是由setuptools创建的,它们可能无法正确设置您的环境(我对Windows环境了解不够,无法确定,或者这是否可以修复)


但是如果您从命令行启动IPython,它肯定会正确地继承您的环境。

我刚刚在运行Python 2.6的Linux上解决了一个类似的问题

事实证明,我的虚拟环境设置为忽略系统路径

通过关闭所有python程序并运行以下命令修复:

virtualenv --system-site-packages ~

显然,当Python和IPython的sys.path不同时,就会发生这种情况

对于IPython,一些快速的临时解决方案是:

import sys
sys.path.append('your paths')
就我个人而言,我喜欢将其放在我正在编写的脚本中,以便将组织在项目目录中的模块包括其子目录。 (请注意:如果主目录和所需的子目录包含一个(空的)uu init_u_;.py文件,则python会将子目录包含在路径中。)

永久解决方案是创建新的IPython配置文件:

ipython profile create
ipython locate
/Users/username/.ipython
转到ipython配置文件并编辑: profile\u default/ipython\u config.py

添加以下内容

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

这可以在Linux上运行,我想应该也可以在Windows上运行。

该死,很抱歉布局,但由于某种原因,我似乎无法添加换行符。我希望问题是这样清楚的。你是怎么开始IPython的?你在IPython中通过
os.environ['PYTHONPATH']
得到了什么?我得到了'C:\\JModelica.org-1.8\\Python'@minrk:你找到了线索。当我在命令窗口中键入“IPython”启动IPython时,sys.path是相同的。我从windows/start窗口中的快捷方式启动了IPython。。。但我还是不明白发生了什么。你怎么设置蟒蛇路径?setuptools构建“开始”菜单项,因此可能不会以继承您的环境的方式启动它们。IPython实际上并不控制这些东西,我通过windows控制面板/环境变量设置PYTHONPATH。我尝试了我的用户配置文件和系统的设置。