Какие шаги воспроизведут проблему?
Каков ожидаемый результат?
Я ожидаю увидеть какой-то вывод в проводнике переменных. Это происходит как в Spyder 3.1.2 Linux, так и в Windows.
Пожалуйста, укажите дополнительную информацию здесь
Вот мой код, пытающийся реализовать исключение Гаусса:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 16 17:40:09 2017
<strong i="18">@author</strong>:
"""
import numpy as np
def f(x):
return 100*np.exp(-10*x)
def exact(x):
return 1.0-(1-np.exp(-10))*x-np.exp(-10*x)
# Hardcoded params for simplicity
#fileout = pyOutput
exponent = 4
#n = 4
for k in range(1, exponent):
# Weird thing we didn't understand
n = 10**k
# Append i to filename
fileout = 'pyOutputSimple'
fileout += str(k)
# descretization resolution
h = 1/n
hh = h*h
''''''
d = np.zeros(n+1)
b = np.zeros(n+1)
x = np.zeros(n+1)
solution = np.zeros(n+1)
d[0] = 2
d[n] = 2
solution[0] = 0
solution[n] = 0
for i in range(1,n):
d[i] = (i+1)/i
for i in range(0,n+1):
x[i] = i*h
b[i] = hh*f(i*h)
# FW sub
for i in range(2,n):
b[i] = b[i] + b[i-1]/d[i-1]
# Backward sub
solution[n-1] = b[n-1]/d[n-1]
for i in range((n-2),0):
solution[i] = (b[i]+solution[i+1])/d[i]
with open(fileout, 'w') as fout:
fout.write('x:\t\tApprox:\t\tExact:\t\tRelative Error:\n')
for j in range(0,n):
RelativeError = np.abs((exact(x[j])-solution[j])/exact(x[j]))
fout.writelines('{0:.8f}'.format(x[j]) + '\t')
fout.writelines('{0:.8f}'.format(solution[j]) + '\t')
fout.writelines('{0:.8f}'.format(exact(x[j])) + '\t')
fout.writelines('{0:.8f}'.format(np.log10(RelativeError)) + '\n')
fout.closed
print('File: ' + str(k) + '/' + str(exponent) + ' written.')
numpy используется
pyflakes >=0.6.0 : 1.5.0 (OK)
pep8 >=0.6 : 1.7.0 (OK)
pygments >=2.0 : 2.1.3 (OK)
qtconsole >=4.2.0: 4.2.1 (OK)
nbconvert >=4.0 : 4.2.0 (OK)
pandas >=0.13.1 : 0.19.2 (OK)
numpy >=1.7 : 1.11.3 (OK)
sphinx >=0.6.6 : 1.5.1 (OK)
rope >=0.9.4 : 0.9.4-1 (OK)
jedi >=0.8.1 : 0.9.0 (OK)
psutil >=0.3 : 5.0.1 (OK)
matplotlib >=1.0 : 2.0.0 (OK)
sympy >=0.7.3 : 1.0 (OK)
pylint >=0.25 : 1.6.4 (OK)
Это происходит только в Python 3.6?
Насколько я могу судить, да. У меня не было этих проблем с Python 3.5 и Spyder 2.3.8 на другом моем компьютере с Windows 7.
Обновите Spyder до 3.1.3 и попробуйте еще раз. Наши тесты отлично работают в Python 3.6, и они определяют, отображаются ли объекты в обозревателе переменных.
Я считаю, что у меня тоже возникла эта проблема, и я использую версию 3.1.3 на Ubuntu. Отчеты ipdb ...
ipdb> sys.version_info
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)
Я смог увидеть, как работает проводник переменных с этим простым файлом ...
substitutions = dict(planet="World")
print("Hello {planet}".format(**substitutions))
... и он правильно визуализировал substitutions
dict
Однако при интерактивном запуске этого файла ...
https://github.com/cefn/avatap/blob/6ad61cb3b8e198acae1caa6f187726fea4834b30/python/test.py
... ничего не отображается в окне обозревателя переменных, даже с самой первой строки первого локального импорта.
Однако интерактивная панель ipdb действительно может проверять переменные при запуске этого файла, например, в точке останова Spyder в строке 28 в test.py, я могу ...
ipdb> !locals().keys()
dict_keys(['BoxPassage', '___', 'Engine', 'ticks_ms', 'loadStory', '_oh', '_iii', 'ChoicePassage', '_ih', 'storyUid', '__package__', 'ConfirmationPassage', '_sh', '_', 'uidInitTypes', '__name__', 'UidRegistry', '__file__', '_i1', 'boxUids', 'getStoryContext', 'Card', 'UidItem', '_ii', 'In', '__builtins__', '_i2', '_dh', 'Container', 'Uid', '_i', '__', 'ConditionalPassage', '__spec__', 'passageUids', 'Box', '__doc__', '__builtin__', 'Story', 'Out', 'AnonymousContainer', 'PagePassage', 'exit', 'story', 'Item', '__loader__', '_i3', 'MockEngine', 'Passage', 'unittest', 'quit', 'get_ipython'])
... в то время как в проводнике переменных вообще ничего не отображается.
Я убедился, что удалил все пакеты ubuntu spyder и spyder3 через apt-get purge
, а затем установил через pip, например ...
sudo -H pip3 install --update spyder
Чтобы быть вдвойне уверен, что ничего странного не происходит, я побежал ...
pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo -H pip3 install --upgrade
... обновить все пакеты pip3 до последней версии, но Spyder Variable Explorer по-прежнему не работает.
Хорошо, если эта проблема связана с отладкой, значит, это ошибка, о которой сообщалось в проблеме № 3711.
Это будет исправлено в Spyder 3.2.
Ой, я думаю, если посмотреть более подробно, возможно, OP не запускал код через отладчик, как я предполагал, поэтому я мог по ошибке захватить эту ошибку. Я не осознавал, что существует средство просмотра переменных, указывающее состояние символов «модуля» в конце прогона, поэтому я просто предположил, что описанное поведение было связано с отладкой. Виноват. Возможно, ОП может уточнить.
@ ccordoba12 есть ли запрос на debugger-improvements
в spyder: head согласно https://github.com/cefn/spyder/pull/1, но это не изменило поведение обозревателя переменных в описанном сценарии отладки ( хотя IDE кажется стабильной и в остальном функциональной).
Возможно, это элемент списка желаний 3.2, чтобы решить эту проблему, а код для ее решения еще не написан? Дайте мне знать, если есть что-нибудь, где можно использовать живое тестирование.
В обозревателе переменных есть параметр Exclude unsupported types
который, если не отмечен, отобразит все типы переменных.
Да @cefn, эта проблема
Просто хотел вернуться и сказать, что переменные теперь отображаются нормально в Spyder 3.1.3 в Linux при использовании следующей конфигурации в yml-файле виртуальной среды conda:
https://github.com/sayboltm/tmp/blob/master/spyder_working.yml
У меня есть подозрение, что версия QT, которую я использовал раньше, может быть связана с проблемой. У меня было много проблем с QT для python с другими проектами, с которыми я только недавно разобрался.
Изменить: ссылка на github вместо вставки всего файла yml
Ничего. Конечно, после многих тестов, как только я это опубликую, переменные не будут отображаться после запуска в проводнике переменных. Ну вот и моя конфигурация. Я надеюсь, что вы, ребята, сможете это исправить, потому что это моя любимая функция и причина, по которой я использую Spyder.
У меня возникла та же проблема, как только я обновился со spyder 3.1.3 до spyder 3.1.4. Обратите внимание, что в разделе Инструменты / Настройки / Обозреватель переменных / Автообновление есть флажок, который, возможно, необходимо установить (после обновления мой был отключен)
Я проверил это поле, и он не был отмечен, но, к моему большому разочарованию, проверка его и перезапуск Spyder все еще не помогли решить эту, казалось бы, временную проблему. Это довольно загадочно.
Это было исправлено? Я успешно запустил свой код, но после этого не могу просмотреть ни одну из переменных в проводнике переменных. Почему это? Spyder 3.2.0 с Python 3.5.3.
столкнувшись с той же проблемой, я рушу Spyder. Версия: 3.1.4
Невозможно просмотреть типы данных !!
и я здесь новенький !!
помогите мне решить это. :)
Спасибо @vishalnadagiri. В настоящее время массивы объектов (с dtype=object
, то есть с нечисловыми данными) не поддерживаются. Уже существует постоянный PR (# 5260) для добавления этой функции. Он будет доступен в следующем выпуске.
Между тем:
X
если вы сохраните их как DataFrame
(просто удалите .values
в строке 10)array
если вы удалите нечисловые данные (первый столбец в вашем случае)Спасибо @Prikers за помощь, мне только что нужно было просмотреть DataFrame, удалив .values
и он работает нормально и может просматривать DataFrame !!
Я все еще сталкивался с этой проблемой, и в результате я запускаю Spyder 2.3.8, когда мне действительно нужно рассчитывать на его обновление и правильную работу. Проблема в том, что для этого требуется старый matplotlib, который ограничивает то, с чем еще я могу работать.
Просто ради этой темы я начал тестирование Spyder 3.2.3 (последняя версия, поддерживаемая conda на данный момент), и подумайте, что обозреватель переменных работает. но я клянусь, что пробовал использовать Linux и Windows с более новыми версиями, и это только иногда работает.
Хуже всего, когда он сначала работает, заполняется переменными (так что вы думаете, что он работает), а затем прекращает работу, поэтому старые данные остаются там, и вы удивляетесь, почему ваши переменные не назначаются должным образом и т.д., но на самом деле это обозреватель переменных умирает. Когда это происходит, я проверяю, набирая известный поддерживаемый тип (int, string) в консоли iPython и вижу, что он не добавлен в проводник переменных. Рад видеть здесь некоторую активность, я проверю, так как мне нравится проводник переменных. Безусловно, любимая функция Spyder!
@Prikers С нетерпением жду этого! Мне нравится иметь возможность увести людей от Matlab к Python и открытым исходным кодам, используя Spyder в качестве шлюза!
@sayboltm, если у вас есть воспроизводимый простой пример, я буду готов исследовать!
У меня была аналогичная проблема со Spyder 3.1.2 и Python 3.6. Я вижу свои переменные в списке в обозревателе переменных. Но если я дважды щелкну массив или переменную матрицы, я не смогу увидеть весь массив или всю матрицу, как это было раньше с версией Sypder 2. *. Кто-нибудь может пролить свет на то, как обойти это, пожалуйста? Заранее большое спасибо!
Полученное мной сообщение об ошибке: «Spyder не удалось получить значение этой переменной из консоли» с дополнительным сообщением об ошибке «Проверка и установка значений во время отладки в консолях IPython еще не поддерживается Spyder». Тем не менее, я почти уверен, что смог увидеть содержимое всего фрейма данных в версии 2. * Spyder.
@JasperAustin вы пытаетесь увидеть переменные во время работы отладчика?
Ваша проблема похожа на эту ?
Да, @Prikers , я пытаюсь увидеть массивы в отладчике
Ваша проблема была исправлена в Spyder 3.2. Пожалуйста обновите.
От 10.03.17 в 15:34, JasperAustin написать:
>
Да, @Prikers https://github.com/prikers , я пытаюсь увидеть
массивы в отладчике-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/spyder-ide/spyder/issues/4154#issuecomment-333970000 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AAWS7SsFdQRCZ039T-4G8PguiNdDVwpsks5sopppgaJpZM4MDpNC .
Спасибо, @ ccordoba12. Я новичок в Python. Как мне обновить версию до Spyder 3.2 с версии 3.1.2?
Если вы используете Anaconda, вам необходимо запустить в системном терминале (cmd.exe, Terminal.app или xterm)
conda update spyder
Если нет, запустите
pip install -U spyder
Еще раз спасибо
C: \ Users \ U608025> conda update spyder
Получение метаданных пакета ...
CondaHTTPError: HTTP Нет Нет для URL
Прошло: нет
Ошибка HTTP при попытке получить этот URL.
ConnectTimeout (MaxRetryError ("HTTPSConnectionPool (host = 'repo.continuum.io', порт
= 443): превышено максимальное количество повторных попыток с URL: /pkgs/free/win-64/repodata.json.bz2 (Причина
d от ConnectTimeoutError (
. (время ожидания подключения = 9.15) ')) ",),)
Я бежал
pip install -U spyder
Но это установило Spyder 3.1.2, а не 3.2. (В Ubuntu 16.04 LTS)
Привет всем !
У меня небольшая проблема с моим спайдером. Сначала прошу прощения за то, что написал здесь свою проблему! Это не так важно, но мне бы хотелось, чтобы кто-нибудь мне помог ^^
На самом деле, когда я открываю Spyder, в проводнике появляется множество переменных, таких как ScalarType, cast ect ...
Есть ли способ предотвратить появление этих переменных?
Большое тебе спасибо !
@ldesmet в правом верхнем углу плагина проводника переменных есть меню cog. Там есть опции, чтобы скрыть некоторые переменные, такие как:
_
)Соответствуют ли эти варианты вашим потребностям?
Привет ! Спасибо за ваш ответ :)
К сожалению, я уже отмечал эти флажки. У меня все еще есть эти переменные в проводнике переменных, когда я открываю Spyder (опять же, не имеет большого значения, я просто удаляю их вручную, но я бы хотел прекратить это делать ^^)
Еще раз спасибо !
Как только вы открываете spyder (перед запуском любого скрипта), эти переменные заполняют проводник переменных?
Да, точно ! Я могу присоединиться к картинке, если хочешь.
@ldesmet Похоже, консоль IPython запускает какой-то код, как только вы ее открываете, возможно, импортируя numpy. Можете ли вы открыть свои настройки в Spyder (в меню Tools
), щелкнуть IPython console
и вкладку Graphics
и посмотреть, отмечен ли Automatically import Pylab and Numpy modules
? Если да, то, вероятно, причина в этом. В противном случае следует проверить также вкладку Startup
и Use symbolic maths
под Advanced Settings
.
Если ничего из этого не помогает, пригодится картинка.
Привет, спасибо за ответ!
Я только что снял флажок «Автоматически импортировать модули Pylab и Numpy», и теперь я больше не вижу этих переменных! Это отлично работает!
Спасибо вам обоим, @Prikers и @jitseniesen :)
Здравствуйте, я новичок в python и spyder, и у меня есть spyder 3.2.4 с установленным Python 3.5. У меня есть код тензорного потока, который работает нормально. Однако у меня есть проблемы с отладкой, поскольку он не показывает никаких значений переменных, связанных с tenorflow, в консоли. См. Пример «прогнозирования» ниже после запуска кода в режиме отладки. 'прогнозировать - это результат функции тензорного потока.
ipdb> я
9
ipdb> предсказать
Я импортирую следующее;
импортировать numpy как np
импортировать тензорный поток как tf
время импорта
import data_helpers
Есть ли обходной путь для отображения значений переменных тензорного потока в консоли, поскольку это важно для отладки?
Благодаря!
Приветствия!
У меня аналогичная проблема в проводнике переменных. Я использую Spyder 3.5. Пожалуйста, дайте мне знать, если я здесь что-то не так делаю.
Когда я пишу приведенный ниже код, я вижу welcome_str в списке, как в проводнике переменных
welcome_str='hello'
print(welcome_str)
Теперь, если написать тот же код с использованием __name __ == "__ main__", проводник переменных будет пуст
#Main function
def main():
#define constants here
welcome_str='hello'
#program flow
print(welcome_str)
#Main function call
if __name__=="__main__":
main()
У меня возникла та же ошибка при попытке реализовать следующий код в начале скрипта в качестве альтернативы ручному использованию% reset в консоли IPython для очистки проводника переменных
из IPython import get_ipython
get_ipython (). magic ('сброс -sf')
отлаживается при импорте некоторых данных из графического интерфейса вручную
У меня тоже была эта проблема. Я проследил это до использования сценария запуска IPython. В конце я делал некоторую очистку переменных, и del get_ipython
видимому, разрушал соединение с обозревателем переменных. Кажется, что сохранение get_ipython
в области видимости заставляет его работать правильно.
get_ipython, по-видимому, разрушал соединение с проводником переменных. Кажется, что сохранение get_ipython в области видимости заставляет его работать правильно.
Да, get_ipython очень важен не только для Spyder, но и для IPython. Поэтому, пожалуйста, не удаляйте его.
тексты не отображаются в столбце значений clean_answer, как решить эту проблему
@jagadishkt , пожалуйста, откройте новый выпуск о своей проблеме, а не публикуйте в старых и закрытых. Кроме того, опубликуйте простой код, который мы можем использовать для воспроизведения вашей ошибки.
@ ccordoba12 спасибо. Это помогло
У меня такая же проблема со Spyder 3.1.2 и Python 3.6. Функции не выполняются должным образом - я вижу, что они работают, но ничего не возвращается. Это также относится к функциям фиктивного теста (например, a + b return c).
У меня была такая же проблема со spyder 3.3.6. Я удалил numpy, spyder и переустановил оба, после чего проблема была решена.
Самый полезный комментарий
В обозревателе переменных есть параметр
Exclude unsupported types
который, если не отмечен, отобразит все типы переменных.