2017-02-15 13 views
2

Этот код не во всех средах Python у меня есть, но не в Spyder:Spyder автоматический импорт подмодулями

import scipy 
print(scipy.integrate.cumtrapz([1, 2, 3])) 

В большинстве сред вы получите

AttributeError: module 'scipy' has no attribute 'integrate' 

, если вы не сделали import scipy.integrate, чтобы получить импортированный субмодуль, но каким-то образом в Spyder этот код работает без ошибок, если вы используете конфигурацию запуска «Выполнение в текущей конфигурации Python или IPython». Это не удается, если вы используете «Выполнение в новой выделенной консоли Python». Очевидно, что Spyder делает что-то, чтобы автоматически импортировать подмодуль, но я не могу найти это поведение в любом месте.

Вопросы - это то, что делает Spyder, где это документировано и как я могу отключить его.

Окружающая среда: Анаконда 3 (4.3.0), Spyder 3.1.2, Python 3.5

ответ

1

Вы можете переключаться с консоли IPython к консоли Python (это другая вкладка там). Проблема в том, что IPython в разных режимах (т. Е. Режим «matplotlib») загружает много материала, и этот материал загружает много материала. В принципе это невозможно контролировать.

enter image description here

Однако есть конечно способы изменить запуск IPython под Tools -> Preferences -> IPython console, но я не уверен, если вы можете отключить SciPy импорта там.

+0

Я также думал, что это автоматический импорт, но если вы оставите скудный импорт, код не удастся. Так что это более тонко, чем это. – chthonicdaemon

+0

@chthonicdaemon, если вы попробуете 'import sys; print (sorted (sys.modules.keys())) 'вы получаете все загруженные модули. Важно знать, что импорт не означает, что вы можете использовать его в интерпретаторе (потому что он был загружен в другое пространство/пространство имен), это просто означает, что он был загружен в любом месте. – MSeifert

+0

Это становится ближе к ответу. Меня все еще интересует, почему/как код будет терпеть неудачу, если я не буду импортировать scipy, но преуспеть, если я это сделаю, но я не 'import scipy.integrate' – chthonicdaemon

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