Bagaimana IPython's sihir %paste work?
Saya ingin copy sudah menjorok kode Python / seluruh fungsi dan kelas ke IPython. Setiap kali saya mencoba lekukan kacau dan saya mendapatkan pesan galat berikut:
IndentationError: unindent tidak sesuai outer lekukan tingkat (<ipython-input-23-354f8c8be51b>, baris 12)
Jika anda ingin menyisipkan kode ke IPython, cobalah %paste dan %cpaste fungsi magic.
91
6
Anda dapat't copy untuk IPython ini diatas. Ini adalah langkah-langkahnya:
%paste
ke IPythonKlarifikasi pada langkah-langkah:
Pertama, target salin baris ke clipboard anda.
Jenis ke iPython prompt:
%paste
%cpaste
Paste (Ctrl-V) dan tekan enter.
Kemudian ketik
-
dan tekan enter.Misalnya:
Sebagai Ipython 5 anda don't perlu magic perintah, hanya paste
Lebih lanjut tentang ini di sini
Untuk meng -
ipython
ke versi terbaru%paste
membutuhkanTkinter
. Jika anda berada di ubuntu, anda dapat menginstalnya denganJika anda berada di Python3
Kemudian restart ipython dan menggunakan
%
paste ' untuk paste dari clipboard anda.Untuk pengguna ubuntu yang ada di Python 3.
The
python-tk
adalah untuk Python versi 2.Untuk membuat
%paste
bekerja pada Python 3, instalpython3-tk
paket:Salah satu jawaban yang berguna yang hilang di komentar, jadi ingin mengulang kembali itu bersama dengan menambahkan referensi untuk yang lain berguna IPython sihir fungsi.
Pertama, untuk menyatakan kembali apa yang @EOL mengatakan, salah satu cara untuk memecahkan OP's masalahnya adalah untuk mematikan auto-lekukan dengan terlebih dahulu menjalankan
%autoindent
dan melakukan paste (tidak diperlukan jika anda menggunakan%paste
, tentu saja).Sekarang untuk menambahkan lebih banyak informasi yang sudah ada di sini, salah satu yang lebih berguna mode di IPython adalah
%doctest_mode
yang memungkinkan anda untuk copy paste contoh dan tes cuplikan dari doc string. Ini juga berguna untuk mengeksekusi interaktif python sesi output yang bisa anda cari di dokumentasi dan forum online, tanpa harus strip pertama keluar prompt string.