2015-08-08 5 views
1

Я пытаюсь запустить код Python из Sublime Text 2 с SublimeREPL.SublimeREPL не распознает библиотеки python

Но когда я вызываю пакет из Sublime, Python возвращает сообщение о том, что пакета нет. , например.

from facebookads.session import FacebookSession 
ImportError: No module named facebookads.session 

Это нормально работает, если я импортирую из python в Terminal.

Когда я начинаю питона из sublimeREPL он говорит:

Python 2.7.6 (default, Sep 9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin 

И когда я начинаю Python из терминала (я бегу на OS X Yosemite)

Python 2.7.6 (default, Jan 11 2014, 11:50:52) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin 

Что не так? Почему это различие по датам по умолчанию?

EDIT

если я бегу

>>> import sys 
>>> sys.executable 

на SublimeREPL я получаю это:

'/usr/bin/python' 

А на терминале я получаю это:

'/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python' 

Я изменил мои пользовательские настройки SublimeREPL

{ 
    "default_extend_env": {"PATH": "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python:{PATH}"} 
} 

И я все еще получаю тот же результат. SublimeREPL не изменил интерпретатор.

EDIT2

Когда я бегу

ls -al /usr/local/bin/python 

я

lrwxr-xr-x 1 filipeferminiano admin 33 Jan 11 2014 /usr/local/bin/python -> ../Cellar/python/2.7.6/bin/python 

Я пробовал:

brew link python 

Но он вернулся:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory 
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0 

Я попробовал еще раз:

ls -al /usr/local/bin/python 

И получил тот же результат, прежде чем

+2

Вы используете два разных переводчика: –

+1

Sublime и ваш терминал используют два разных питона, каждый со своим набором пакетов. – Rishav

+0

Как изменить sublimeREPL для чтения одного и того же питона? –

ответ

1

Проблема заключается в том, что вы используете два разных переводчиков. Вы можете проверить это, выполнив следующие строки внутри SublimeREPL и переводчик запуске из консоли (пути будут отличаться):

>>> import sys 
>>> sys.executable 
'/usr/local/opt/python/bin/python' 

Если значения отличаются вы должны изменить настройки SublimeREPL, чтобы указать, чтобы исправить интерпретатор (так же, как вы получили , при запуске Python с консоли).Один из способов его достижения - изменить переменную PATH, используемую SublimeREPL. Перейдите в раздел «Настройки» -> «Настройки пакета» -> SublimeREPL -> «Настройки» - «Пользователь» и добавьте каталог с нужным интерпретатором к настройке default_extend_env (не забудьте удалить с конца python). С переводчиком из моего примера выглядит следующим образом:

{ 
    "default_extend_env": {"PATH": "/usr/local/opt/python/bin/:{PATH}"} 
} 

Но гораздо лучше подход заключается в использовании virtualenv для управления средами Python. Вы можете запустить интерпретатор для правильной среды, выполнив «SublimeREPL: Python - virtualenv» вместо «SublimeREPL: Python». См. documentation.

+0

спасибо за помощь @ devoto13 Я отредактировал мой вопрос. SublimeREPL не меняет интерпретатор python. –

+0

Не могли бы вы вывести вывод из следующей команды 'ls -al/usr/local/bin/python'? Он должен быть символической ссылкой на путь интерпретатора '/ usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Версии/2.7/Resources/Python.app/Contents/MacOS/Python'. Если это не так, попробуйте запустить 'brew link python' и снова перепроверьте. Если это так, вы можете добавить '/ usr/local/bin /' вместо длинного пути в настройках SublimeREPL. –

+0

Я отредактировал мой вопрос в разделе EDIT2. –

Смежные вопросы