Ipython的sys.path与python不同,并且不使用PYTHONPATH?
看起来IPython没有考虑我的PYTHONPATH,而普通的python解释器会考虑它。我在Windows7上 我的蟒蛇: C:\workspace\python; C:\Python27\Lib\site packages\spyderlib; C:\Workspace\Python\awesim\awesim 打印sys.path: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
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。我尝试了我的用户配置文件和系统的设置。