Spyder: Variabel tidak muncul di penjelajah variabel (Python 3.6)

Dibuat pada 16 Feb 2017  ·  46Komentar  ·  Sumber: spyder-ide/spyder

Deskripsi

Langkah apa yang akan mereproduksi masalah?

  1. Buka Spyder
  2. Tulis beberapa kode dengan variabel (bahkan konstanta)
  3. Jalankan kode dan variabel tidak muncul, bahkan konstanta 'epsilon'

Apa hasil yang diharapkan?
Saya berharap untuk melihat beberapa output di variabel explorer. Ini terjadi pada Spyder 3.1.2 Linux dan Windows.

Berikan informasi tambahan di bawah
Ini kode saya, mencoba menerapkan elmiminasi Gaussian:

#!/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.')

Versi dan komponen utama

  • Versi Spyder: 3.1.2
  • Versi Python: 3.6.0.0
  • Versi Qt: 5.6.2, PyQt5 5.6 di Linux

Dependensi

numpy digunakan

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)

Variable Explorer Duplicate Bug

Komentar yang paling membantu

Ada opsi di Variable Explorer bernama Exclude unsupported types yang jika tidak dicentang akan menampilkan semua jenis variabel di atasnya.

Semua 46 komentar

Apakah itu hanya terjadi di Python 3.6?

Sejauh yang saya tahu, ya. Saya tidak mengalami masalah ini dengan Python 3.5 dan Spyder 2.3.8 di mesin Windows 7 saya yang lain.

Harap perbarui ke Spyder 3.1.3 dan coba lagi. Pengujian kami berjalan dengan baik di Python 3.6, dan mendeteksi jika objek ditampilkan di Variable Explorer.

Saya yakin saya juga mengalami masalah ini dan saya menjalankan 3.1.3 di Ubuntu. Laporan Ipdb ...

ipdb> sys.version_info
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

Saya bisa melihat fungsi dari Variable Explorer terhadap file sederhana ini ...

substitutions = dict(planet="World")
print("Hello {planet}".format(**substitutions))

... dan itu dengan benar memvisualisasikan substitutions dict

Namun, saat menjalankan file ini secara interaktif ...
https://github.com/cefn/avatap/blob/6ad61cb3b8e198acae1caa6f187726fea4834b30/python/test.py
... tidak ada yang ditampilkan di jendela Variable Explorer, bahkan dari baris pertama impor lokal pertama.

Namun, panel ipdb interaktif memang dapat memeriksa variabel saat menjalankan file itu, misalnya, pada breakpoint Spyder di baris 28 di test.py, saya dapat melakukan ...

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'])

... sementara tidak ada sama sekali yang ditampilkan di Variable Explorer.

Saya memastikan untuk menghapus semua paket ubuntu spyder dan spyder3 melalui apt-get purge , kemudian diinstal melalui pip seperti ...

sudo -H pip3 install --update spyder

Untuk memastikan bahwa tidak ada hal aneh yang terjadi, aku kemudian lari ...

pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 sudo -H pip3 install --upgrade

... untuk memutakhirkan semua paket pip3 ke yang terbaru, tetapi Variable Explorer Spyder tetap tidak bekerja sama.

Oke, jika masalah ini tentang debugging, maka itu bug dan dilaporkan di masalah # 3711.

Ini akan diperbaiki di Spyder 3.2.

Ups, saya pikir melihat lebih detail mungkin OP tidak menjalankan kode melalui debugger seperti yang saya asumsikan, jadi saya mungkin salah membajak bug ini. Saya tidak menyadari ada penampil variabel yang menunjukkan status simbol 'modul' di akhir proses, jadi saya hanya berasumsi bahwa perilaku yang dijelaskan terkait dengan debugging. Salahku. Mungkin OP bisa menjelaskan.

@ ccordoba12 adakah permintaan tarik di mana saya dapat memberikan kontribusi pengujian untuk fitur ini terhadap perbaikan yang diharapkan untuk mendarat di spyder 3.2? Saya mencoba menggabungkan debugger-improvements cabang Anda ke spyder: head sesuai https://github.com/cefn/spyder/pull/1 tetapi ini tidak mengubah perilaku Variable Explorer di bawah skenario debug yang dijelaskan ( meskipun IDE tampak stabil dan berfungsi).

Mungkin itu adalah item daftar keinginan 3.2 untuk menyelesaikannya dan kode untuk menyelesaikannya belum ditulis? Beri tahu saya jika ada manfaat pengujian langsung.

Ada opsi di Variable Explorer bernama Exclude unsupported types yang jika tidak dicentang akan menampilkan semua jenis variabel di atasnya.

Ya @cefn masalah ini terjadi saat tidak ada di debugger. Variabel harus diperbarui di akhir tetapi tidak jika muncul sama sekali. Debugger tampaknya bekerja hampir sepanjang waktu. Saya bisa membuatnya muncul jika saya menjalankan debugger, tetapi kemudian setelah mereka tidak memperbarui dengan proses berikutnya. Ini adalah tipe yang didukung seperti tipe Python asli (string, int, list, dll). Terima kasih telah melihat ini

Hanya ingin berpadu kembali dan mengatakan bahwa variabel sekarang muncul dengan baik di Spyder 3.1.3 di Linux saat menggunakan konfigurasi berikut dalam file yml lingkungan virtual conda:

https://github.com/sayboltm/tmp/blob/master/spyder_working.yml

Saya memiliki firasat bahwa versi QT yang saya jalankan sebelumnya mungkin terkait dengan masalah tersebut. Saya memiliki banyak masalah dengan QT untuk python dengan proyek lain yang baru saja saya selesaikan.

Edit: tautan github alih-alih menempelkan seluruh file yml

Sudahlah. Tentu saja setelah banyak tes, segera setelah saya mempostingnya, itu tidak akan menampilkan variabel setelah dijalankan di variabel explorer. Nah, ada konfigurasi saya. Saya harap kalian dapat memperbaikinya karena itu adalah fitur favorit saya dan alasan saya menggunakan Spyder.

image

Saya mengalami masalah yang sama segera setelah saya meningkatkan dari spyder 3.1.3 ke spyder 3.1.4. Perhatikan bahwa di bawah Alat / Preferensi / Penjelajah Variabel / Autorefresh ada kotak centang yang mungkin perlu diperiksa (milik saya dimatikan setelah peningkatan)

Saya memeriksa kotak itu dan kotak itu tidak dicentang, tetapi saya sangat kecewa, memeriksanya, memulai ulang spyder masih tidak memperbaiki masalah yang tampaknya terputus-putus ini. Ini cukup membingungkan.

Apakah ini sudah diperbaiki? Saya berhasil menjalankan kode saya tetapi saya tidak dapat melihat variabel apa pun di variabel explorer sesudahnya. Kenapa ini? Spyder 3.2.0 dengan Python 3.5.3.

menghadapi masalah yang sama di sini, saya merusak Versi Spyder: 3.1.4
Tidak dapat melihat tipe data !!
dan saya baru di sini !!
bantu saya untuk menyelesaikannya. :)
capture

Terima kasih @vishalnadagiri. Saat ini array objek (dengan dtype=object , artinya dengan data non numerik) tidak didukung. Sudah ada PR yang sedang berjalan (# 5260) untuk menambahkan fungsi ini. Ini akan tersedia di rilis mendatang.

Sementara itu:

  • Anda dapat melihat data Anda X jika Anda menyimpannya sebagai DataFrame (cukup hapus .values pada baris 10 Anda)
  • atau Anda dapat melihatnya sebagai array jika Anda menghapus data non-numerik (kolom pertama dalam kasus Anda)

Terima kasih @Prikers atas bantuannya, saya baru saja melihat DataFrame dengan menghapus .values dan berfungsi dengan baik dan dapat melihat DataFrame !!

Saya masih melihat masalah ini terjadi dan sebagai hasilnya saya menjalankan Spyder 2.3.8 ketika saya benar-benar perlu mengandalkannya untuk memperbarui dan bekerja dengan baik. Masalahnya adalah, itu membutuhkan matplotlib lama yang membatasi apa lagi yang bisa saya gunakan.

Hanya untuk kepentingan utas ini saya telah mulai menguji Spyder 3.2.3 (terbaru yang didukung oleh Conda seperti yang sekarang) dan mencari variabel explorer tampaknya berfungsi. tapi saya bersumpah saya mencoba di Linux dan Windows dengan versi yang lebih baru dan hanya kadang-kadang berhasil.

Bagian terburuknya adalah ketika berfungsi pada awalnya, diisi dengan variabel (jadi Anda pikir itu berfungsi), kemudian berhenti berfungsi sehingga data lama tetap ada dan Anda bertanya-tanya mengapa variabel Anda tidak ditetapkan dengan benar, dll. Tetapi sebenarnya variabel explorer sekarat. Ketika ini terjadi, saya memverifikasi dengan mengetikkan jenis yang didukung yang dikenal (int, string) ke dalam konsol iPython dan melihat bahwa itu tidak ditambahkan ke variabel explorer. Senang melihat beberapa aktivitas di sini, saya akan memeriksanya kembali karena saya suka penjelajah variabel. Fitur favorit spyder pasti!

@Prikers Menantikan ini! Senang bisa membawa orang menjauh dari Matlab dan masuk ke Python dan open-source menggunakan Spyder sebagai gateway!

@sayboltm jika Anda dapat memiliki contoh sederhana yang dapat direproduksi, saya akan bersedia untuk menyelidikinya!

Saya mendapat masalah serupa dengan Spyder 3.1.2 dan Python 3.6. Saya melihat variabel saya terdaftar di Variable Explorer. Tetapi jika saya mengklik dua kali variabel array atau matriks, saya tidak dapat melihat keseluruhan array atau seluruh matriks seperti yang biasa saya lakukan dengan versi 2. * Sypder. Bisakah seseorang memberi tahu saya tentang cara menyiasatinya? Terima kasih banyak sebelumnya!

Pesan kesalahan yang saya terima: 'Spyder tidak dapat mengambil nilai variabel ini dari konsol', dengan pesan kesalahan tambahan 'Memeriksa dan mengatur nilai saat debugging di konsol IPython belum didukung oleh Spyder'. Namun demikian, saya cukup yakin bahwa saya dapat melihat konten dari seluruh kerangka data dalam versi 2. * Spyder.

@JasperAustin, apakah Anda mencoba melihat variabel saat menjalankan debugger?
Apakah masalah Anda serupa dengan masalah ini ?

Ya, @Prikers , saya mencoba melihat array di debugger

Masalah Anda telah diperbaiki di Spyder 3.2. Harap perbarui.

El 03/10/17 a las 15:34, JasperAustin escribió:
>

Ya, @Prikers https://github.com/prikers , saya mencoba untuk melihat
array di debugger

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/spyder-ide/spyder/issues/4154#issuecomment-333970000 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AAWS7SsFdQRCZ039T-4G8PguiNdDVwpsks5sopppgaJpZM4MDpNC .

Terima kasih, @ ccordoba12. Saya baru mengenal Python. Bagaimana saya dapat memperbarui ke Spyder 3.2 dari 3.1.2?

Jika Anda menggunakan Anaconda, Anda harus menjalankan di terminal sistem (cmd.exe, Terminal.app atau xterm)

conda update spyder

Jika tidak, silakan lari

pip install -U spyder

Terima kasih lagi @ ccordoba12 . Saya menggunakan Anaconda, dan mencoba perintah pertama Anda dua kali tetapi masih mendapatkan kesalahan berikut:
C: \ Users \ U608025> conda update spyder
Mengambil metadata paket ...

CondaHTTPError: HTTP Tidak Ada Tidak Ada untuk url
Berlalu: Tidak ada

Terjadi kesalahan HTTP saat mencoba mengambil URL ini.
ConnectTimeout (MaxRetryError ("HTTPSConnectionPool (host = 'repo.continuum.io', port
= 443): Percobaan ulang maksimum terlampaui dengan url: /pkgs/free/win-64/repodata.json.bz2 (Penyebab
d oleh ConnectTimeoutError ( objek ection di 0x0000000006D19A90>, 'Sambungan ke repo.continuum.io habis waktu
. (hubungkan waktu tunggu = 9,15) ')) ",),)

aku harus lari

pip install -U spyder

Tapi itu menginstal Spyder 3.1.2, bukan 3.2. (Di Ubuntu 16.04 LTS)

Hai semuanya !

Saya punya sedikit masalah dengan spyder saya. Saya pertama kali minta maaf untuk menuliskan masalah saya di sini! Itu tidak terlalu penting tapi saya berharap seseorang bisa membantu saya ^^
Sebenarnya, ketika saya membuka Spyder, saya memiliki banyak variabel di explorer seperti ScalarType, cast dll ...
Apakah ada cara lain untuk mencegah variabel-variabel ini muncul?

Terima kasih banyak !

@ldesmet di pojok kanan atas plugin variabel explorer ada menu roda gigi. Di sana, ada opsi untuk menyembunyikan beberapa variabel seperti:

  • Referensi pribadi (nama variabel dimulai dengan _ )
  • Semua referensi huruf besar
  • Tipe data tidak didukung

Apakah opsi ini sesuai dengan kebutuhan Anda?

Hai! Terima kasih atas jawaban Anda :)

Sayangnya saya sudah mencentang kotak ini. Saya masih memiliki variabel-variabel ini di variabel explorer ketika saya membuka Spyder (sekali lagi, bukan masalah besar, saya hanya menghapusnya secara manual tetapi saya ingin berhenti melakukan ini ^^)

Terima kasih lagi !

Segera setelah Anda membuka spyder (sebelum menjalankan skrip apa pun), variabel-variabel ini mengisi variabel explorer?

Ya persis ! Saya bisa bergabung dengan gambar jika Anda mau.

@ldesmet Sepertinya konsol IPython menjalankan beberapa kode segera setelah Anda membukanya, mungkin mengimpor numpy. Dapatkah Anda membuka Preferensi Anda di Spyder (di menu Tools ), klik IPython console dan tab Graphics , dan lihat apakah Automatically import Pylab and Numpy modules dicentang? Jika ya, mungkin itu penyebabnya. Jika tidak, hal lain yang perlu diperiksa adalah tab Startup dan Use symbolic maths bawah Advanced Settings .

Jika tidak ada yang membantu, gambar akan berguna.

Hai, terima kasih atas jawaban Anda!

Saya baru saja menghapus centang pada kotak "Impor modul Pylab dan Numpy secara otomatis" dan sekarang saya tidak melihat variabel ini lagi! Itu bekerja dengan sempurna!

Terima kasih kalian berdua @Prikers dan @jitseniesen :)

Halo, Saya baru mengenal python dan spyder dan saya memiliki spyder 3.2.4 dengan Python 3.5 terinstal. Saya memiliki kode tensorflow yang berfungsi dengan baik. Namun, saya memiliki masalah dengan debugging karena tidak menampilkan nilai variabel yang terkait dengan tensorflow di konsol. Silakan lihat contoh 'prediksi' di bawah ini setelah menjalankan kode dalam mode debug. 'Prediksi adalah keluaran dari fungsi tensorflow.

ipdb> i
9
ipdb> prediksi

Saya mengimpor yang berikut;
impor numpy sebagai np
impor tensorflow sebagai tf
waktu impor
impor data_helpers

Apakah ada solusi untuk menampilkan nilai variabel tensorflow di konsol karena itu penting untuk debugging?

Terima kasih!

Salam pembuka!

Saya memiliki masalah serupa di variabel explorer. Saya menggunakan Spyder 3.5. Tolong beri tahu saya jika saya melakukan kesalahan di sini.

Ketika saya menulis kode di bawah ini, saya dapat melihat welcome_str terdaftar seperti pada variabel explorer

welcome_str='hello'
print(welcome_str)

Sekarang jika di tulis kode yang sama menggunakan __name __ == "__ main__", variabel explorer kosong

#Main function
def main():

    #define constants here
    welcome_str='hello'

    #program flow
    print(welcome_str)

#Main function call
if __name__=="__main__":
    main()

Saya mengalami bug yang sama saat mencoba menerapkan kode berikut di awal skrip sebagai alternatif untuk menggunakan% reset secara manual di konsol IPython untuk menghapus variabel explorer

dari IPython, impor get_ipython
get_ipython (). magic ('reset -sf')

debug ketika mengimpor beberapa data dari GUI secara manual

Saya juga mengalami masalah ini. Saya melacaknya ke penggunaan skrip startup IPython. Saya melakukan beberapa pembersihan variabel di akhir dan del get_ipython tampaknya merusak koneksi ke Variable Explorer. Menyimpan get_ipython dalam ruang lingkup tampaknya membuatnya bekerja dengan benar.

get_ipython tampaknya merusak koneksi ke Variable Explorer. Menyimpan get_ipython dalam cakupan tampaknya membuatnya berfungsi dengan benar.

Ya, get_ipython sangat penting, tidak hanya untuk Spyder tapi juga untuk IPython. Jadi tolong jangan dihapus.

capture
teks tidak ditampilkan di kolom nilai clean_answer, bagaimana mengatasinya

@jagadishkt , silakan buka terbitan baru tentang masalah Anda alih-alih memposting di masalah lama dan tertutup. Selain itu, kirimkan kode sederhana yang dapat kami gunakan untuk mereproduksi kesalahan Anda.

@ cvordan Itu membantu

Saya memiliki masalah yang sama dengan Spyder 3.1.2 dan Python 3.6. Fungsi tidak dijalankan dengan benar - Saya melihatnya berjalan, tetapi tidak ada yang dikembalikan. Ini juga kasus dengan fungsi uji-dummy (seperti a + b return c).

Saya mengalami masalah yang sama dengan spyder 3.3.6. Saya menghapus instalan numpy, spyder, dan menginstal ulang keduanya, lalu masalah telah teratasi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat