Spyder: Perlu menekan jalankan dua kali dengan matplotlib di spyder

Dibuat pada 17 Feb 2015  ·  75Komentar  ·  Sumber: spyder-ide/spyder

_Dari markfran ... @ gmail.com pada 2014-05-26T19: 10: 46Z_

Versi Spyder: 2.3.0beta2
Versi Python: 3.3.5
Versi Qt: 4.8.4, PyQt4 (API v2) 4.9.6 di Windows
pyflakes> = 0.6.0: Tidak Ada (OK)
pep8> = 0.6: Tidak Ada (NOK)
IPython> = 0.13: 2.0.0 (OK)
tali> = 0.9.2: 0.9.4 (OK)
sphinx> = 0.6.6: 1.2.2 (OK)
matplotlib> = 1.0: 1.3.1 (OK)
sympy> = 0.7.0: 0.7.5 (OK)
pylint> = 0.25: 1.1.0 (OK)

Langkah apa yang akan mereproduksi masalah?

  1. Buka skrip dengan gambar matplotlib. Misalnya salah satunya dari situs matplotlib. http://matplotlib.org/mpl_examples/pylab_examples/figure_title.py 2. Tekan run atau F5. Ini berjalan normal.

    1. Tekan run atau F5 untuk kedua kalinya dan skrip tidak berjalan

    2. Tekan run atau F5 untuk ketiga kalinya, kemudian skrip dijalankan

Apa hasil yang diharapkan? Apa yang Anda lihat?

Ketika Anda mencoba menjalankan skrip dengan matplotlib, Anda menekan run dan berfungsi normal pertama kali. Tekan jalankan lagi dan skrip tidak berjalan. Anda harus menekan run untuk kedua kalinya agar skrip dapat berjalan

Spyder dalam mode "Jalankan dalam python atau ipython interpreter" mode

Di konsol terlihat seperti ini (saya menghapus jalur file agar lebih pendek). F5 memasukkan runfile masuk Kali kedua Anda mencoba menjalankannya, ketika Anda mengklik F5 atau panah lari hijau dua kali Anda runfile masuk ke konsol dua kali sebelum dijalankan.

">>> runfile ('C: /.../ figure_title.py', wdir = r'C: / ... ')

runfile ('C: /.../ figure_title.py', wdir = r'C: / ... ')
runfile ('C: /.../ figure_title.py', wdir = r'C: / ... ')
"

Berikan informasi tambahan di bawah

. Saya pikir itu adalah masalah dengan skrip saya sendiri, tetapi masalah tersebut berulang bahkan dengan kode dari situs matplotlib.

Saya hanya memiliki masalah ini ketika saya memiliki skrip dengan matplotlib. Misalnya, ketika saya menjalankan skrip sederhana seperti di bawah ini saya dapat menjalankannya berulang-ulang tanpa masalah. Saya tidak perlu menekan F5 dua kali.

x = int (masukan ("masukkan nomor:"))

jika x <0:
x = 0
cetak ('Negatif')
elif x> 0:
cetak ('Positif')
elif x == 0:
cetak ('Nol')

_Masalah asli: http://code.google.com/p/spyderlib/issues/detail?id=1831_

6–10 stars Windows Python Console Bug

Komentar yang paling membantu

Perilaku buruk yang dijelaskan dalam komentar pertama masalah ini tampaknya masih berlanjut. Kedua masalah tersebut adalah:

  1. Skrip tidak berjalan ketika resp. 'Runf File' F5 ditekan. Seseorang harus menekannya dua kali atau tekan enter di konsol setelah F5 pertama
  2. Saat mengubah ke skrip lain, skrip sebelumnya dijalankan setelah prosedur yang dijelaskan di 1.

Dalam kasus saya, semua ini dimulai setelah memperbarui dari spyder 2 ke 3.
Konfigurasi saya adalah:

  • Windows 7, 64 bit
  • Python 2.7.12
  • Anaconda 4.2.0
  • Spyder 3.0.2
  • di preferensi, run diatur ke "mengeksekusi dengan Python atau konsol IPython saat ini"
  • konsol saat ini adalah Python

Semua 75 komentar

_Dari selundupan pada 2014-05-27T00: 28: 48Z_

Apakah Anda dalam mode interaktif atau apakah Anda memanggil show () di akhir skrip Anda? Panggilan show () memblokir dan itu bisa menjelaskan mengapa skrip tidak berjalan untuk kedua kalinya. Namun itu tidak menjelaskan mengapa itu akan berjalan dengan baik untuk ketiga kalinya ...

_Dari menyelam ... @ gmail.com pada 2014-05-28T05: 15: 05Z_

Saya mengalami masalah yang sama setelah menginstal Spyder 2.3.0rc, dengan konfigurasi yang sama dengan markfran. Namun saya perhatikan bahwa masalahnya ada saat menekan F5 dari konsol Python, tetapi _not_ dari IPython.

_From dive ... @ gmail.com pada 2014-06-02T07: 31: 12Z_

Mengubah mode interaktif dengan plt.ion () atau plt.ioff () tidak memengaruhi bug ini.

Saya biasanya menggunakan mode interaktif dan prosedur saya menunjukkan plot tanpa menggunakan perintah plt.show (). Tetapi jika saya memanggil plt.ioff () sebelum memanggil prosedur matplotlib saya, bug "tekan-jalankan-dua kali" muncul bahkan jika prosedur saya tidak benar-benar menampilkan plot apa pun.

Singkatnya, selama saya pertama kali memanggil dari konsol Python sebuah prosedur yang menggunakan fungsi matplotlib, saya perlu menekan jalankan dua kali untuk menjalankan prosedur selanjutnya.

_Dari ccordoba12 pada 2014-06-22T20: 57: 01Z_

Saya tidak dapat mereproduksi ini dengan Python 2. Mungkin ini adalah kesalahan dengan Python 3 dan Matplotlib, saya akan memeriksanya.

Ringkasan: Perlu menekan jalankan dua kali dengan matplotlib di spyder (was: perlu tekan jalankan dua kali dengan matplotlib di spyder)

_Dari ccordoba12 pada 2014-06-22T22: 38: 09Z_

Saya punya dua pertanyaan untuk Anda (hanya karena penasaran):

  1. Bagaimana Anda menginstal Matplotlib?
  2. Apakah Anda menggunakan WinPython atau Anaconda?

_From dive ... @ gmail.com pada 2014-06-23T04: 24: 03Z_

Saya mencoba dua distribusi berbeda:

  1. Saya menghapus Spyder dari WinPython 3.3.5 64bit dan menggantinya dengan Spyder 2.3.0rc
  2. Saya menggunakan distribusi Anaconda terbaru dengan Python 3.4 64bit, yang dilengkapi dengan Spyder 2.3.0rc

Bug di atas berperilaku dengan cara yang sama di kedua distribusi.

_Dari ccordoba12 pada 2014-06-23T13: 15: 02Z_

Tidak beruntung mereproduksi yang satu ini untuk saya setelah beberapa jam kerja :) Saya menginstal Anaconda terbaru untuk 32bit dan semuanya bekerja seperti yang diharapkan (saya tidak memiliki Win64 untuk diuji).

Saya juga tidak dapat memverifikasi masalah # 1837 dan masalah # 1861, jadi saya tidak melihat satupun dari mereka sebagai penghenti untuk 2.3, maaf.

Mungkin Anda akan lebih baik menggunakan IPython daripada Python biasa, karena teman-teman IPython telah bekerja sangat keras untuk memperlancar semua interaksi dengan Matplotlib.

@ -Sylvain, jika Anda memiliki waktu luang dan akses ke Win64, dapatkah mengujinya hanya untuk memastikan?

Cc: sylvain .... @ gmail.com

_Dari sylvain .... @ gmail.com pada 2014-06-23T13: 36: 09Z_

Oke, saya bisa memeriksanya malam ini. Saya memiliki win64 di tangan. S.

_Dari menyelam ... @ gmail.com pada 2014-06-23T15: 41: 09Z_

@ -ccordoba12 terima kasih banyak telah memeriksa hal ini, dan secara umum atas kerja keras Anda dalam meningkatkan mata-mata. Aku menyukainya!

Alasan utama saya _not_ menggunakan konsol IPython dengan spyder adalah kurangnya buffer riwayat selama debugging. Histori hanya berfungsi untuk saya selama debugging di Python Console normal. Saya tidak yakin ini dimaksudkan / diharapkan, atau saya melakukan sesuatu yang salah ...

_Dari ccordoba12 pada 2014-06-23T15: 53: 04Z_

Saya mengerti maksud Anda tentang IPython. Itu adalah batasan teknis di pihaknya, jadi (sayangnya) kami tidak dapat berbuat apa-apa.

Anda juga dapat mencoba menguji masalah Anda di komputer lain, hanya untuk memastikan apakah masalah tersebut terkait dengan Win64 atau pengaturan khusus Anda.

_Dari sylvain .... @ gmail.com pada 2014-06-23T16: 40: 11Z_

Hai, saya tidak mereproduksi perilaku yang dijelaskan dengan tip saat ini dari cabang default, dengan Win7 64bits. Versi lokal PyQt adalah 4.10.4.

Masalah yang saya alami dengan jendela secara umum adalah jendela matplotlib dibuat dan tetap tersembunyi di balik jendela Spyder.

_Dari ccordoba12 pada 2014-06-24T04: 29: 29Z_

Ya, itu gangguan mengerikan yang semoga suatu hari nanti bisa diperbaiki pengembang :)

Terima kasih atas bantuan Anda, Sylvain.

_Dari menyelam ... @ gmail.com pada 2014-06-24T13: 39: 59Z_

@ -Sylvain hanya untuk memastikan, apakah Anda mencoba mereproduksi bug ini pada Python 3.3 di Windows?

Saya hanya memiliki bug ini dengan Python 3.3, tetapi Spyder 2.3.0rc yang sama bekerja dengan baik untuk saya dengan Python 2.7.

_Dari sylvain .... @ gmail.com pada 2014-06-24T14: 36: 14Z_

Memang sepertinya itu adalah hal khusus Python 3. Saya perlu mengujinya di lingkungan yang berbeda. (Selain itu, skrip booststrap tampaknya tidak berfungsi dengan Python 3)
Sylvain

_Dari menyelam ... @ gmail.com pada 2014-06-24T15: 23: 12Z_

Saya juga mengalami masalah dalam menggunakan skrip booststrap.py dengan Python 3. Gagal memulai. Saya ingin memastikan bahwa saya dapat mereproduksi bug dengan versi Spyder terbaru.

Setelah menghapus "C: \ Users \ myname.spyder2-py3" beberapa kali, Spyder akhirnya memulai dan memberi saya bug yang sama dengan versi 2.3.0rc yang dirilis secara resmi dan biasanya diinstal.

_Dari menyelam ... @ gmail.com pada 2014-06-26T03: 16: 32Z_

@ ccordoba12 dan @ -Sylvain Saya mencatat bahwa masalah # 1810 juga sama dengan masalah # 1831 ini. Jadi tampaknya bug ini dikonfirmasi oleh setidaknya tiga orang yang berbeda di komputer dan konfigurasi yang berbeda.

Tampaknya ada di sana sejak Spyder 2.3.0beta2. Dalam semua kasus, bug hanya muncul di Python 3, yang dukungannya adalah salah satu yang menarik dari Spyder 2.3. Bug, dengan masalah terkait # 1837 dan masalah # 1861 membuat Konsol Python pada dasarnya tidak dapat digunakan pada Python 3.

Masalah-masalah ini memaksa seseorang untuk menggunakan IPython untuk debugging di Spyder, yang berarti seseorang harus kehilangan riwayat perintah.

Saya akan memilih untuk meningkatkan prioritas dari rangkaian masalah terkait ini, jika Spyder 2.3 bermaksud untuk mendukung Python 3.

_Dari menyelam ... @ gmail.com pada 2014-06-27T04: 48: 19Z_

Saya melakukan tes tambahan, yang dapat membantu menemukan sumber masalah.

Saya baru saja mengunduh versi Spyder terbaru dari repositori dan saya menggunakan bootstrap.py untuk memulainya dengan Python 2.7.6 (WinPython 64bit).

Saya kemudian pergi ke Preferences / Console / Advanced_settings / Python_Executable dan di bagian "Gunakan juru bahasa Python berikut" saya memilih Python 3.3.5.

Saya dapat mengonfirmasi bahwa masalah # 1810, masalah # 1831, masalah # 1837 dan masalah # 1861 semuanya masih berlaku ketika saya menjalankan, mengkompilasi atau men-debug program pada konsol Python 3, bahkan ketika menjalankan Spyder dengan Python 2. Semoga tes ini akan membantu mencari solusi.

_Dari sylvain .... @ gmail.com pada 2014-06-27T06: 18: 47Z_

@ -divenex, terima kasih telah menyelidiki hal ini lebih lanjut. Saya akan melihat lebih jauh malam ini.

_Dari ccordoba12 pada 2014-06-27T10: 13: 36Z_

masalah # 1810 telah digabungkan ke dalam masalah ini.

_Dari ccordoba12 pada 2014-06-27T10: 24: 59Z_

Beberapa komentar:

  1. @ -divenex: Kami tidak dapat meningkatkan prioritas masalah ini (sehingga memblokir rilis final) jika kami tidak dapat mereproduksinya. Seperti yang saya katakan, saya menghabiskan 5 jam akhir pekan lalu mencoba melakukannya dan tidak mampu. Selain menggunakan Anaconda, saya menginstal Python 3.3 dari python.org, PyQt, numpy dan matplotlib dari installer resmi mereka dan tidak berhasil sama sekali. Jadi apa lagi yang bisa kita lakukan?
  2. @ -Sylvain: Tolong beritahu saya apa masalahnya dengan bootstrap.py dan Python 3. Saya tidak melihat masalah pada Windows atau Linux.

_Dari menyelam ... @ gmail.com pada 2014-06-27T10: 42: 58Z_

@ -ccordoba12 terima kasih banyak atas tesnya.

Saya sangat berharap Anda dapat mereproduksinya, karena saya tidak dapat membuatnya hilang apa pun yang saya coba, pada dua komputer Windows (7 dan 8) 64bit dan dua distribusi (WinPython dan Anaconda) yang telah saya coba. Dan dua pengguna lain melaporkannya ...

Tetapi tentu saja saya mengerti bahwa Anda tidak mungkin memperbaikinya tanpa melihat bug di komputer Anda.

_Dari ccordoba12 pada 2014-06-27T10: 59: 08Z_

Sigh, saya akan melihat apakah saya bisa meminjam Win64 akhir pekan ini. Tetapi bahkan jika saya dapat mengonfirmasinya, saya pikir kita harus merilis dengan apa yang kita miliki karena ini tampaknya cukup halus dan sulit untuk di-debug, jadi menyelesaikannya dapat memakan waktu dua minggu atau lebih.

_Dari ccordoba12 pada 2014-06-27T22: 46: 38Z_

Hanya firasat tetapi bisakah Anda mencoba menonaktifkan firewall / antivirus Anda dan menjalankan semuanya lagi untuk melihat apa yang terjadi?

Mungkin mereka mengganggu komunikasi antara Spyder dan proses di mana kode dijalankan (yang berada di luar Spyder sehingga tidak memblokir GUI).

_Dari menyelam ... @ gmail.com pada 2014-06-28T05: 12: 29Z_

Terima kasih untuk sarannya. Saya mencoba menonaktifkan firewall dan antivirus tetapi sayangnya tidak ada yang berubah. Semua bug yang dilaporkan masih ada di sini.

Sebagai satu tes lagi saya menginstal versi 32-bit dari WinPython 3.3.5.0. Saya dapat mengonfirmasi bahwa masalah # 1831, masalah # 1837 dan masalah # 1861 masih ada juga dengan 32bit Python 3 di bawah Windows.

Ini benar baik saat menjalankan dengan boostrap.py versi terbaru Spyder 2.3.0rc dari repositori dan saat menjalankan Spyder 2.3.0beta2, yang sudah diinstal sebelumnya dengan WinPython 3.3.5.0.

Yang terakhir ini setuju dengan apa yang awalnya dilaporkan oleh markfran, yang memulai edisi # 1831 dan dengan sstef, yang membuka edisi # 1810.

_Dari ccordoba12 pada 2014-07-06T06: 16: 48Z_

Oke, itu kemajuan! Setidaknya Anda mempersempit masalah ke Windows 8. Sayangnya saya tidak memiliki akses ke mesin Win 8, jadi orang lain harus membantu kami di sini.

Label: OpSys-Windows

_Dari ccordoba12 pada 2014-07-06T09: 56: 51Z_

Sepertinya Anda menemukan solusinya adalah beberapa masalah dengan WinPython. Jika demikian, maka kami dapat menutup masalah ini dan Anda dapat memindahkan diskusi ke pelacak bug WinPython.

_Dari menyelam ... @ gmail.com pada 2014-07-06T10: 19: 35Z_

Saya membuat instalasi bersih Windows 8.1 64bit di mesin virtual. Saya tidak menginstal apa pun kecuali untuk Anaconda 2.01 versi 64bit dengan Python 3.4, yang menyertakan Spyder 2.3.0rc.

Sayangnya saya harus mengkonfirmasi bahwa masalah # 1831, masalah # 1837 dan masalah # 1861 masih ada dengan konfigurasi Windows 8 yang benar-benar bersih dan standar.

( @ ccordoba12 maaf atas laporan saya yang terlalu cepat dan tidak benar sehingga masalah mungkin telah terpecahkan.)

_From dive ... @ gmail.com pada 2014-07-06T10: 40: 46Z_

Sebagai info tambahan: dengan penginstalan baru Windows 8.1 dan Anaconda3, pertama kali saya menjalankan skrip matplotlib, skrip ini berjalan dengan benar setiap kali saya menekan F5 sebagaimana mestinya. Ini membuat saya berpikir bug itu akhirnya hilang!

Tetapi segera setelah saya membuat skrip lain dan mulai beralih dari satu skrip ke skrip lain, saya menyadari bahwa masalah # 1831, masalah # 1837 dan masalah # 1861 masih ada.

_Dari jason.bo ... @ gmail.com pada 07-07-2014T05: 57: 33Z_

Saya mengalami masalah ini juga. Saya menjalankan Win7 64bit dan menjalankan Spyder dari WinPython 3.3.5. Berdasarkan komentar untuk masalah ini, dan pengalaman saya dan kolega saya, ini tampaknya menjadi sesuatu yang spesifik untuk versi Python 3.x WinPython.

Berikut adalah contoh output konsol saya (baris runfile harus berasal dari menekan tombol Run file, jika tidak kesalahan tidak terjadi):

cetak ('test')
uji
runfile ('C: /path/to/file.py', wdir = r'C: / path / to ')

UMD telah menghapus: rosapreaders, helpers, plot_fft

uji

cetak ('test')

uji

_From dive ... @ gmail.com pada 07-07-2014T07: 34: 06Z_

@ -Jason terima kasih telah melaporkan ini. Sangat berguna untuk mengetahui bahwa itu juga terjadi di Win7 untuk Anda dan kolega Anda, dan tidak hanya di Win8.

Saya setuju ini khusus untuk Python 3, tetapi perhatikan bahwa ini tidak khusus untuk WinPython, karena saya juga memiliki masalah yang sama dengan Anaconda3.

Saya berencana untuk mengujinya pada instalasi bersih Win7 + Anaconda, seperti yang saya lakukan dengan Win8, untuk melihat apakah itu juga terjadi di sana. Saya mencoba untuk memastikan kondisi di mana rangkaian bug ini terjadi, berharap dapat membantu para pengembang dalam mereproduksi / memperbaiki ini.

Saya suka Spyder, tetapi dengan masalah ini saya belum dapat menganggapnya sebagai alternatif yang layak untuk Python 3, yang saya harap komunitas akhirnya memimpin ...

_Dari menyelam ... @ gmail.com pada 08-07-2014T08: 20: 44Z_

Saya membuat instalasi bersih Windows 7 64bit di mesin virtual. Saya tidak menginstal _anything_ else kecuali untuk (i) Anaconda3 2.01 versi 64bit dengan Python 3.4, yang menyertakan Spyder 2.3.0rc; (ii) WinPython 3.3.5, yang mencakup Spyder 2.3.0beta2.

Saya mengonfirmasi bahwa semua masalah # 1810, masalah # 1831, masalah # 1837 dan masalah # 1861 masih berlaku untuk konfigurasi Windows yang sepenuhnya bersih dan standar yang paling populer. Hal yang sama berlaku, seperti yang saya laporkan dalam komentar saya sebelumnya, dengan instalasi Winodws 8.1 64bit yang bersih.

Di bawah ini saya berikan beberapa contoh terperinci di bawah Windows 7 dan Anaconda3, tetapi hal yang sama terjadi di Windows 8 dan / atau WinPython.


Sebagai contoh masalah # 1831 ---------------------------

Diberikan skrip sepele berikut temp1.py:

import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(5))
print("first script")

Jika saya memulai konsol Python baru dan menekan F5 tiga kali saya mendapatkan output berikut di konsol:

Python 3.4.1 |Anaconda 2.0.1 (64-bit)| (default, Jun 11 2014, 17:27:11) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
\>>> runfile('C:/dir/temp1.py', wdir=r'C:/dir')
first script
\>>> runfile('C:/dir/temp1.py', wdir=r'C:/dir')
runfile('C:/dir/temp1.py', wdir=r'C:/dir')
first script
\>>> 

Perhatikan bahwa aplikasi berjalan dengan benar untuk pertama kali, tetapi membutuhkan dua F5 untuk kedua kalinya seperti yang dilaporkan semula untuk masalah # 1831.


Sebagai contoh masalah # 1861 ---------------------------

Jika saya sekarang membuka skrip serupa kedua temp2.py

import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(5))
print("second script")

Dan tekan F5 _four_ kali saya mendapatkan output berikut:

\>>> runfile('C:/dir/temp2.py', wdir=r'C:/dir')
runfile('C:/dir/temp2.py', wdir=r'C:/dir')
first script
\>>> runfile('C:/dir/temp2.py', wdir=r'C:/dir')
runfile('C:/dir/temp2.py', wdir=r'C:/dir')
second script
\>>> 

Perhatikan bahwa hanya setelah menekan F5 _four_ kali temp2.py akhirnya berjalan. Dua penekanan F5 pertama hanya menjalankan skrip yang sebelumnya aktif temp1.py, bahkan meskipun konsol menulis runfile (... temp2.py ...)


Sebagai contoh masalah # 1837 ---------------------------

Masalah yang lebih serius adalah kenyataan bahwa jika saya menempatkan breakpoint pada baris ketiga dari temp1.py dan menekan Ctrl + F5 untuk "file debug" saya mendapatkan keluaran berikut. Perhatikan bahwa konsol tidak memberikan prompt, bertentangan dengan yang seharusnya.

\>>> debugfile('C:/dir/temp1.py', wdir=r'C:/dir')

Saat saya menekan Ctrl + F12 untuk "melanjutkan eksekusi hingga breakpoint berikutnya", eksekusi akan melompat ke akhir, alih-alih berhenti di breakpoint

continue
first script
\>>>

GARIS BAWAH

Konsol Python pada dasarnya tidak dapat digunakan di Spyder 2.3.0rc, saat menggunakan Python 3 di bawah Windows 7 atau 8. Hanya konsol IPython yang berfungsi di sana.

Mengingat bahwa semua bug berlaku dengan pemasangan bersih dari sistem operasi, banyak pengguna Python 3 yang mungkin terpengaruh.

Saya berharap saya bisa membantu. Saya berpengalaman dengan Python, tetapi saya tidak tahu harus mulai dari mana dengan men-debug Spyder ... Tapi saya harap pengujian saya akan memudahkan salah satu pengembang untuk mereproduksi masalah. (Untuk info, dalam pengujian saya, saya menggunakan mesin virtual VMware gratis dan saya tidak perlu mengaktifkan sistem operasi saat menginstal Windows 7/8, karena Windows akan bekerja dalam mode uji coba selama 30 hari)

_Dari boukek ... @ gmail.com pada 22-07-2014T05: 01: 19Z_

Saya memiliki masalah skrip yang tidak berjalan pada F5 kedua juga.
Setup: win7 64 bit, instal semuanya melalui WinPython.

Saya perhatikan bahwa ketika saya mengetik 'runfile ([scriptname])' secara manual, semuanya berfungsi dengan baik. Berikut adalah sesi konsol yang mendemonstrasikan efeknya (info pribadi dari jalur dihapus):

Python 3.3.5 (v3.3.5: 62cf4e77f785, 9 Mar 2014, 10:35:05) [MSC v.1600 64 bit (AMD64)] pada win32
Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.

Impor NumPy 1.8.1, SciPy 0.13.3, Matplotlib 1.3.1

  • guidata 1.6.1, guiqwt 2.3.2
    Ketik "ilmiah" untuk lebih jelasnya.

runfile ('C: / [somepath] /TransmissionProbability.py', wdir = r'C: / [somepath] ')
# Ini dengan F5, bekerja dengan sempurna
runfile ('TransmissionProbability.py')
# Diketik secara manual: berfungsi sempurna (direktori kerja saya diatur dengan benar)
runfile ('C: / [somepath] /TransmissionProbability.py', wdir = r'C: / [somepath] ')
# F5 lagi, ini hang (sampai F5 kedua tapi saya tidak melakukan itu). Saya tekan Ctr-C untuk menghentikan hang, output:

Traceback (panggilan terakhir terakhir):
File "_ctypes / callbacks.c", baris 260, di 'memanggil fungsi panggilan balik'
File "C: \ path \ to \ WinPython \ WinPython-64bit-3.3.5.0 \ python-3.3.5.amd64 \ lib \ site-packages \ spyderlib \ widgets \ externalshell \ sitecustomize.py", baris 295, di qt_inputhook
QtCore.QCoreApplication.exec_ ()
KeyboardInterrupt

Semoga bermanfaat. Solusi saya sekarang adalah memulai ulang konsol python untuk setiap proses, tetapi saya kehilangan angka, yang agak merepotkan.

_Dari ccordoba12 pada 24-07

Terima kasih banyak atas info tambahan @ -boukekrom. Bisakah beberapa dari kalian pergi

Preferences > Console > External modules > Qt (PyQt/PySide)

dan _deactivate_ opsi yang dipanggil

Install Spyder's input hook for Qt

untuk melihat apakah itu membantu atau memperbaiki masalah Anda?

Cc: -sylvain .... @ gmail.com

_From dive ... @ gmail.com pada 2014-07-25T10: 39: 49Z_

@ -ccordoba12 terima kasih telah memeriksa hal ini. Sayangnya apa yang Anda sarankan tidak menyelesaikan masalah.

Dengan versi rilis Spyder 2.3 dan Python 3.3, jika saya _menonaktifkan_ opsi bernama "Instal hook input Spyder untuk Qt" maka prosedur akan berjalan saat pertama kali saya menekan F5 seperti sebelumnya.

Namun banyak hal berubah setelah itu. Sekarang menekan F5 lagi beberapa kali tidak menjalankan prosedur lagi, itu hanya mencetak di konsol dan tidak pernah memberikan prompt kembali:

runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
...

_Dari ccordoba12 pada

masalah # 1925 telah digabungkan ke dalam masalah ini.

_Dari ccordoba12 pada 08-08

Saya akhirnya bisa menguji dan mengkonfirmasi bug ini (bersama dengan yang lain yang direferensikan oleh @ -divenex).

Satu-satunya solusi yang saya temukan sejauh ini adalah menggunakan backend Matplotlib yang berbeda. Anda dapat mengubahnya di:

Preferences > Console > External modules > Matplotlib

dari default (Qt4Agg) ke TkAgg (satu-satunya yang tersedia di Windows).

Sayangnya ini tidak berhasil bagi Anda yang bekerja dengan Anaconda. Saya akan mencoba memperbaikinya untuk rilis Anaconda berikutnya.

Status: Diterima

_Dari ccordoba12 pada 08-08

masalah # 1837 telah digabungkan dengan masalah ini.

_Dari ccordoba12 pada 08-08

masalah # 1861 telah digabungkan dengan masalah ini.

_Dari menyelam ... @ gmail.com pada 11-08-2014T04: 12: 06Z_

@ -ccordoba12 bagus, Anda dapat mengonfirmasi ini! Saya sangat merindukan konsol Python di Spyder!

Solusi Anda sebagian bekerja untuk saya. Ini memecahkan masalah yang dilaporkan tetapi menghasilkan satu lagi: dengan backend TkAgg jendela grafis sekarang terus-menerus mengatakan "(Tidak Menanggapi)".

Lebih khusus lagi, ketika saya menjalankan script berikut

import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(5))
print("first script")

prosedurnya berjalan dengan benar setiap kali saya menekan F5, dan debugging juga berfungsi. Namun plot tidak muncul di layar, sampai saya mengetik sesuatu seperti "plt.pause (99)".

Selain itu, jendela Tk terus-menerus tidak responsif sehingga saya tidak dapat dengan mudah membawanya ke latar depan, kecuali saya mengetik lagi "plt.pause (99)".

Singkatnya, jendela Tk berperilaku persis sama seperti selama debugging (lihat masalah # 620), bahkan ketika saya _not_ men-debug skrip apa pun.

Apakah ada konfigurasi yang dapat memperbaiki perilaku ini (saya menggunakan WinPython dengan Python 3.3.5 dan Spyder 2.3.0)?

_Dari menyelam ... @ gmail.com pada 11-08-2014T06: 13: 19Z_

@ -ccordoba12 Saya mengonfirmasi bahwa menggunakan Anaconda terbaru tidak dapat memilih backend TkAgg karena Spyder memberikan pesan kesalahan panjang berikut saat mencoba menjalankan misalnya skrip singkat temp1.py di atas. Perhatikan bahwa jendela grafik Tk masih mengatakan "(Tidak Menanggapi)" seperti halnya menggunakan WinPython (lihat komentar saya sebelumnya):

Python 3.4.1 | Anaconda 2.0.1 (64-bit) | (default, 11 Jun 2014, 17:27:11) [MSC v.1600 64 bit (AMD64)] pada win32
Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.

runfile ('C: /dir/temp1.py', wdir = r'C: / dir ')
Pengecualian dalam panggilan balik Tkinter
Traceback (panggilan terakhir terakhir):
File "C: \ Usersxxx \ Anaconda3 \ lib \ site-packages \ matplotlib \ backends \ tkagg.py", baris 13, dengan blit
tk.call ("PyAggImagePhoto", photoimage, id (aggimage), colormode, id (bbox_array))
_tkinter.TclError: nama perintah "PyAggImagePhoto" tidak valid

Selama menangani pengecualian di atas, pengecualian lain terjadi:

Traceback (panggilan terakhir terakhir):
File "C: \ Usersxxx \ Anaconda3 \ lib \ tkinter__init __. Py", baris 1487, sedang dipanggil
return self.func (* args)
File "C: \ Usersxxx \ Anaconda3 \ lib \ site-packages \ matplotlib \ backends \ backend_tkagg.py", baris 276, dalam ukuran
self.show ()
File "C: \ Usersxxx \ Anaconda3 \ lib \ site-packages \ matplotlib \ backends \ backend_tkagg.py", baris 349, sedang menggambar
tkagg.blit (self._tkphoto, self.renderer._renderer, colormode = 2)
File "C: \ Usersxxx \ Anaconda3 \ lib \ site-packages \ matplotlib \ backends \ tkagg.py", baris 20, dengan blit
tk.call ("PyAggImagePhoto", photoimage, id (aggimage), colormode, id (bbox_array))
_tkinter.TclError
skrip pertama

_Dari ccordoba12 pada 2014-08-11T15: 16: 42Z_

@ -divenex: Apa yang terjadi jika Anda mencoba menggunakan instalasi Anaconda 32 bit, bukan yang 64? Apakah perilaku yang sama masih terlihat?

_Dari menyelam ... @ gmail.com pada 2014-08-12T12: 51: 22Z_

@ -ccordoba12 Melakukan hal yang sama persis pada Anaconda3 versi 32-bit, Python macet saat saya menjalankan skrip temp1.py: "program berhenti bekerja"

_Dari ccordoba12 pada 2014-08-13T10: 53: 34Z_

@ -divenex:

  1. AFAICT kesalahan dengan Anaconda adalah bug dengan build matplotlib mereka, jadi harus dilaporkan bersama mereka sehingga mereka dapat memperbaikinya.
  2. Jika plot TkAgg tidak responsif (maksud saya dengan WinPython), ini berarti ada _something_ yang mengganggu komunikasi antara antarmuka grafis Spyder dan proses Python eksternal yang digunakan untuk menjalankan kode (yang dilakukan melalui soket). Bisa jadi firewall, dan antivirus atau semacamnya, karena saya tidak dapat mereproduksi masalah ini di mesin 64 bit Win 7 lain dengan Anaconda3 dan backend Qt4Agg.

Sampai kami menemukan sesuatu itu dan bagaimana menghindari masalah komunikasi yang dikenalkannya, tidak ada solusi atau perubahan konfigurasi yang dapat digunakan untuk mengubah situasi.

  1. Saya minta maaf untuk mengatakannya tetapi ini jauh di luar liga saya dalam hal OS (saya orang Linux) dan keahlian (saya telah bekerja sangat sedikit dengan soket). Jadi kita harus menunggu sampai Pierre (penulis Spyder dan ahli Windows) kembali dan menangani masalah ini, atau orang lain dengan keahlian serupa.

Pemilik: pierre.raybaut
Label: Cat-Console

_Dari menyelam ... @ gmail.com pada 13-08-2014T12: 10: 35Z_

@ -ccordoba12 terima kasih atas penjelasannya. Maka saya sangat berharap Pierre dapat melihat masalah ini dan membawa konsol Spyder Python ke pengguna Windows Python 3 juga.

Saya sangat suka Spyder dan tidak dapat bekerja tanpanya. Jadi, sejak saya pindah ke Python 3, saya telah berkali-kali tergoda untuk kembali ke Python 2.7, di mana Spyder bekerja dengan baik. Tapi saya pikir sudah waktunya bagi komunitas untuk mulai menggunakan Python 3. Untuk alasan ini saya tetap menggunakannya dan berharap seseorang dapat menemukan cara untuk menyelesaikan masalah. Sayangnya saya tidak bisa membantu diri saya sendiri dengan masalah khusus ini ...

_Dari lyh27557 ... @ gmail.com pada 15-08-2014T00: 16: 39Z_

Saya menemukan masalah yang sama dengan @ -divenex, dan ini membuat saya gila. Semoga Pierre memperbaikinya.

_Dari dpe ... @ gmail.com pada 2014-11-05T10: 47: 23Z_

Halo semua,

Saya telah menginstal WinPython-64bit-3.3.5.0 di mesin Windows 8.1 saya
Saya rasa saya mungkin terkena masalah yang terkait dengan apa yang Anda diskusikan yang dapat saya tiru ulang dengan sangat mudah. Saya memiliki file dengan konten berikut

def msgBox (caption, title = 'Information', buttons = ['OK']):
'' 'Menampilkan kotak pesan modal.
Argumen:
keterangan: teks pesan
judul: teks bilah judul
tombol: daftar atau tuple teks label tombol

The message box icon is set by a keyword in the title.
Following keywords are recognized: 
    'info' or 'about',
    'critical' or 'error,
    'warning' or 'caution',
    'question' or 'confirm'.
Where each keyword of these pairs is fully equivalent.

Up to three buttons can be specified, using a tuple or list of button labels.

Example:
    import PYnGUInLib as GUI
    reply=GUI.msgBox('Do you want to abort?','Question',['Abort','Continue','Restart'])

If no buttons are specified, there is one "OK" button by default.

The message box closes when a button is pressed, and the
label of the button that was pressed is returned.
'''

app=QtGui.QApplication.instance()   # checks if QApplication already exists 
if not app:                         # create QApplication if it doesnt exist 
    app = QtGui.QApplication(sys.argv)


mb=QtGui.QMessageBox()
mb.setStyleSheet("background-color: rgb(241, 241, 241);");

mb.setText(caption)
mb.setWindowTitle(title)
for str in buttons:
    mb.addButton(str, QtGui.QMessageBox.AcceptRole)

if 'info' in title.lower() or 'about' in title.lower():
    mb.setIcon(QtGui.QMessageBox.Information)
elif 'critical' in title.lower() or 'error' in title.lower():
    mb.setIcon(QtGui.QMessageBox.Critical)
elif 'warning' in title.lower() or 'caution' in title.lower():
    mb.setIcon(QtGui.QMessageBox.Warning)
elif 'question' in title.lower() or 'confirm' in title.lower():
    mb.setIcon(QtGui.QMessageBox.Question)
else:
    mb.setIcon(QtGui.QMessageBox.Information) 

return buttons[mb.exec_()]

impor PYnGUInLib sebagai GUI
reply = GUI.msgBox ('Do you want to abort?', 'Question', ['Abort', 'Continue', 'Restart'])

pada titik ini saya mendapatkan kotak pesan saya jika saya menekan untuk contoh ruang di konsol Spyder sebelum menekan salah satu tombol kotak pesan saya, sepertinya sesuatu terjadi. Jadi setelah itu saya mendapatkan perilaku ini: (harus menekan enter kadang 2 kali, kadang 5,6 kali sebelum mendapatkan hasilnya)

2 + 2

4

_Dari dpe ... @ gmail.com pada 2014-11-05T10: 51: 41Z_

Saya baru saja memperhatikan jumlah entri yang diperlukan (untuk mendapatkan 4) tergantung dari berapa banyak spasi yang telah saya masukkan sebelum menekan tombol kotak pesan.

_Dari ccordoba12 pada

masalah # 1597 telah digabungkan ke dalam masalah ini.

_From dive ... @ gmail.com pada 2015-02-03T23: 16: 37Z_

Di Spyder 2.3.2, bug ini, yang awalnya tampak khusus untuk Windows, sekarang dapat direproduksi juga menggunakan Python 3.4 (Anaconda) di bawah Ubuntu (14.04 64bit).

Akan sangat bagus jika seseorang dapat memperbaiki bug yang besar dan sudah berlangsung lama ini. Sebagai alternatif, konsol harus dinonaktifkan di Python 3 untuk memperjelas bahwa itu tidak didukung di sana.

_Dari ccordoba12 pada 2015-02-04T07: 28: 07Z_

Ini lebih serius. Jadi kode ini

import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(5))
print("first script")

juga memberikan masalah pada Ubuntu?

_From dive ... @ gmail.com pada 04-02-2015: 51: 24Z_

Ya, saya mengonfirmasi bahwa saya perlu menekan dua kali untuk menjalankan skrip sederhana di atas di konsol standar dengan Spyder 2.3.2 di bawah Ubuntu.

Semua masalah yang dilaporkan sebelumnya terkait dengan bug yang mengganggu ini, yang membuatnya tidak mungkin untuk di-debug di konsol, juga ada di Ubuntu dengan Python 3.

_Dari ccordoba12 pada 2015-02-04T14: 59: 28Z_

Buruk buruk buruk. Sayangnya 2.3.3 hampir siap, jadi saya akan melihat apa yang saya bisa tentangnya untuk 2.3.4

Label: MS-v2.3.4

_Dari menyelam ... @ gmail.com pada 2015-02-05T01: 52: 25Z_

Saya mendapat kesan bahwa pengembang Spyder belum melakukan transisi ke Python 3, jika tidak mereka akan menyadari bagaimana Spyder yang bermasalah terlihat di bawah Python 3. Haruskah seseorang tidak mencoba membuat konsol dapat digunakan dengan Python 3 sebelum membuat lebih banyak rilis resmi Spyder?

Perhatikan bahwa saya mengerti bahwa memperbaiki bug itu sulit, jika tidak maka tidak akan luput dari solusi selama hampir satu tahun! Tetapi saya merasa perbaikan ini harus menjadi prioritas utama dan orang yang memperbaikinya harus mendapatkan hadiah ...

_Dari ccordoba12 pada 2015-02-05T16: 09: 11Z_

Saya memperkenalkan bug ini di Linux saat mencoba memperbaiki masalah # 1930 (yang juga sangat serius). Saya membutuhkan beberapa jam untuk memahami apa yang terjadi dengan interaksi kedua masalah tersebut.

Bagaimanapun, terima kasih atas desakan Anda. Setidaknya saya rasa saya memiliki perbaikan untuk Linux, yang akan saya sertakan di 2.3.3.

_From dive ... @ gmail.com pada 2015-02-06T00: 32: 27Z_

Itu menarik. Jika Anda dapat memperbaiki di Linux, bukankah menurut Anda hal serupa dapat diperbaiki di Windows juga? Gejala masalahnya sekarang terlihat sangat mirip di Linux dan Windows ...

_Dari ccordoba12 pada 2015-02-09T06: 38: 30Z_

Saya rasa saya memperbaiki masalah # 2022 sebagai bagian dari upaya untuk memperbaikinya. Silakan uji versi cepat saji terbaru dan beri tahu saya apakah ini berfungsi untuk Anda atau tidak.

@divenex , setelah berjam-jam dihabiskan untuk masalah ini, saya dapat mengatakan bahwa ini sangat rumit dan jauh dari sepele untuk diperbaiki pada Windows.

Saya akan berkonsultasi dengan beberapa teman untuk mencoba menyelesaikannya untuk 2.4. Maaf atas kabar buruknya.

Hai,

Kembali ke masalah awal.
dengan spyder diluncurkan di konsol gaya IDE python saat ini

Ketika tidak berjalan, saya pergi ke konsol, dan saya mengetik:

  • <ENTER> pertama kali masalah non-tampilan terjadi,
  • 2 kali <ENTER> kedua kali masalah non-tampilan terjadi,
  • 3 kali <ENTER> ketiga kalinya masalah non-tampilan terjadi,
  • 4 kali <ENTER> keempat kali masalah non-tampilan terjadi, ....

dan kemudian, grafik kemudian menampilkan dirinya sendiri, berfungsi (bahkan jika saya telah mengetikpada baris prompt kosong berikutnya, bodoh).

(spyder 2.3.3, python 2.3.4, windows)

@ ccordoba12 terima kasih sudah mencoba.

Saya harus melaporkan bug lama ini masih ada di 3.0.0b6.

Maaf, saya benar-benar tidak tahu cara mengatasi bug ini. Sudahkah Anda mencoba dengan Qt5? Apakah bug ini juga muncul bersamanya?

@divenex , saya rasa saya menemukan perbaikan untuk masalah ini (setelah beberapa percobaan :-) Apakah Anda dapat mengujinya dari permintaan tarik?

@ ccordoba12 maaf atas balasan lambat saya. Saya sekarang telah menguji Spyder 3.0.0 dengan QT5 (qt: 5.6.0) dan masalahnya masih ada. Konsol Python masih sepenuhnya tidak dapat digunakan, dan hanya konsol IPython yang berfungsi. Ini untuk Anaconda dengan Python 3.5 di bawah Windows 10 64bit.

@ cc_cirebon
Maaf atas laporan yang digandakan. Dalam hal itu bisa membantu, di sisi saya, konfigurasi yang sama dari divenex. Saya harus kembali ke versi 3.0.0b6 (dengan dependensi yang sama persis) agar berfungsi. Di 3.0.0b7, perintah jalankan itu sendiri tidak ditemukan, saya mendapat pesan kesalahan.
Terima kasih atas pekerjaan Anda!

Ya, masalah dengan b7 telah diperbaiki di rilis final.

Perilaku buruk yang dijelaskan dalam komentar pertama masalah ini tampaknya masih berlanjut. Kedua masalah tersebut adalah:

  1. Skrip tidak berjalan ketika resp. 'Runf File' F5 ditekan. Seseorang harus menekannya dua kali atau tekan enter di konsol setelah F5 pertama
  2. Saat mengubah ke skrip lain, skrip sebelumnya dijalankan setelah prosedur yang dijelaskan di 1.

Dalam kasus saya, semua ini dimulai setelah memperbarui dari spyder 2 ke 3.
Konfigurasi saya adalah:

  • Windows 7, 64 bit
  • Python 2.7.12
  • Anaconda 4.2.0
  • Spyder 3.0.2
  • di preferensi, run diatur ke "mengeksekusi dengan Python atau konsol IPython saat ini"
  • konsol saat ini adalah Python

Hanya ingin mengatasi masalah ini, dan menambahkan sesuatu yang belum pernah saya lihat orang lain sebutkan ..

Dengan konsol baru, apa pun yang dimasukkan secara interaktif segera dikembalikan:

>>> 2+2
4

Seperti yang dinyatakan orang lain, menjalankan file saat ini dengan f5 memerlukan mengklik kembali ke konsol dan menekan <return> lagi. Setelah ini, semua entri interaktif juga memerlukan <return> ekstra:

>>> 2+2
>>> 
4

Menjalankan file lagi secara terus-menerus menambah berapa kali saya harus menekan <return> untuk mendapatkan tanggapan kembali dari penerjemah:

>>> 2+2
>>> 
>>>
>>>
>>>
>>>
4

Saya minta maaf tetapi konsol Python akan dihapus di Spyder 3.2, jadi kami tidak berencana untuk memperbaiki ini atau bug lain yang terkait dengannya.

Saya akan membuat masalah yang menjelaskan alasan kami melakukan itu, tetapi salah satu yang utama adalah konsol Python rusak di Windows.

Jangan lupa bahwa konsol Python adalah satu-satunya yang saat ini mendukung riwayat perintah selama debugging. Jadi saya tidak akan menghapus konsol Python sebelum menerapkan riwayat perintah di IPython.

Saya masih bertanya-tanya bagaimana orang dapat mentolerir debugging di Spyder menggunakan konsol IPython, tanpa riwayat perintah!

FYI: Spyder versi Linux, dengan konsol Python yang berfungsi, dapat digunakan di Windows 10 dengan Subsistem Windows untuk Linux

Sangat menyedihkan mendengar bahwa konsol Python akan dihapus! Saya menggunakannya secara eksklusif.

Saya mengalami masalah yang sama dengan eksekusi yang tertunda setelah meningkatkan ke Anaconda (1.5) dan Spyder (3.1.3) dengan Python (3.6).

Ada solusi sederhana bagi mereka yang ingin memiliki fungsi serupa dengan konsol sambil menghindari eksekusi yang tertunda. Mungkin itu akan membantu orang lain.

Buka saja Run> Configure. Kemudian di grup 'Konsol' beralih dari 'Jalankan dengan Python atau konsol IPython saat ini' ke 'Jalankan di konsol Python khusus baru'.

Saya juga mencentang 'Berinteraksi dengan konsol Python setelah eksekusi' dan 'Tampilkan peringatan saat mematikan proses yang sedang berjalan'.

Ini mungkin bukan solusi terbaik tetapi setidaknya itu menghilangkan eksekusi yang tertunda.

@ rpg32 , sayangnya konsol Python menahan kita di beberapa bidang, dan itu benar-benar tidak terawat sekarang (saya telah melakukan yang terbaik untuk memperbaiki bugnya selama bertahun-tahun, tetapi sangat sulit untuk men-debug).

Namun, izinkan saya meyakinkan Anda bahwa kami akan memigrasi semua fitur-fiturnya ke konsol IPython sehingga orang tidak melewatkan apa pun tentangnya di 3.2.

@ ccordoba12 senang mendengar Anda berencana untuk memigrasi fitur Konsol Python ke IPython. Dalam hal ini, sangat masuk akal untuk mengkonsolidasikan pengembangan ke satu konsol. Saya menantikan 3.2.

@divenex , itulah idenya. Saya baru saja menambahkan riwayat penelusuran saat men-debug ke konsol IPython di PR # 4202, jadi itu akan menyelesaikan keluhan utama Anda tentang hal itu.

Fungsionalitas lain yang hilang (misalnya menjalankan file di konsol IPython khusus) akan datang dalam PR lain.

@ ccordoba12 Anda benar, riwayat browsing saat debugging memang satu-satunya fitur yang saya lewatkan di konsol IPython. Sangat bagus untuk melihat PR tentang itu.

Menutup karena konsol Python akan dihapus di Spyder 3.2 .

Silakan lihat masalah # 4524 untuk alasan kami melakukan ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat