从崇高文本打开ipython

时间:2013-09-12 21:48:09

标签: python plugins sublimetext2

我将以下插件添加到sublime text 2,这意味着打开ipython qt控制台:

import sublime, sublime_plugin
from subprocess import call
# import os

class ipythonQtCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        call(["start","ipython", "qtconsole", "--pylab", "--ConsoleWidget.font_size=9", "--ConsoleWidget.font_family='Consolas'"],shell=True)

最初它工作得很好,即插件打开了一个ipython shell。然后我添加了一个菜单项和一个键绑定。在某些时候某些事情一定出错了,因为现在我在运行插件时遇到了这个错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Chris\Python27\lib\site-packages\IPython\__init__.py", line 43, in <
odule>
    from .config.loader import Config
  File "C:\Chris\Python27\lib\site-packages\IPython\config\__init__.py", line 1
, in <module>
    from .application import *
  File "C:\Chris\Python27\lib\site-packages\IPython\config\application.py", lin
 31, in <module>
    from IPython.config.configurable import SingletonConfigurable
  File "C:\Chris\Python27\lib\site-packages\IPython\config\configurable.py", li
e 31, in <module>
    from loader import Config
  File "C:\Chris\Python27\lib\site-packages\IPython\config\loader.py", line 32,
in <module>
    from IPython.utils.path import filefind, get_ipython_dir
  File "C:\Chris\Python27\lib\site-packages\IPython\utils\path.py", line 29, in
<module>
    from IPython.utils.process import system
  File "C:\Chris\Python27\lib\site-packages\IPython\utils\process.py", line 25,
in <module>
    from ._process_win32 import _find_cmd, system, getoutput, AvoidUNCPath, arg
split
  File "C:\Chris\Python27\lib\site-packages\IPython\utils\_process_win32.py", l
ne 21, in <module>
    import ctypes
  File "C:\Chris\Python27\lib\ctypes\__init__.py", line 10, in <module>
    from _ctypes import Union, Structure, Array
ImportError: Module use of python26.dll conflicts with this version of Python.

我通过在st2 shell本身中逐行运行来测试脚本,它是导致错误的最后一行call([...])。我发现这有点奇怪,因为从其他地方调用它时命令工作正常,例如ipython本身。

1 个答案:

答案 0 :(得分:1)

似乎与st2本机python存在冲突。无论如何,在使用os.system(...)更改工作目录时,我设法让os.chdir()工作。