Saya menemukan diri saya mengetik import numpy as np
hampir setiap kali saya menjalankan penerjemah python. Bagaimana cara mengatur juru bahasa python atau ipython sehingga numpy diimpor secara otomatis?
120
Gunakan variabel lingkungan PYTHONSTARTUP . Dari dokumentasi resmi:
Jika ini adalah nama file yang dapat dibaca, perintah Python dalam file tersebut dijalankan sebelum prompt pertama ditampilkan dalam mode interaktif. File tersebut dijalankan di namespace yang sama di mana perintah interaktif dijalankan sehingga objek yang ditentukan atau diimpor di dalamnya dapat digunakan tanpa kualifikasi dalam sesi interaktif.
Jadi, buat saja skrip python dengan pernyataan import dan arahkan variabel lingkungan ke sana. Karena itu, ingatlah bahwa 'Eksplisit selalu lebih baik daripada implisit', jadi jangan mengandalkan perilaku ini untuk skrip produksi.
Untuk Ipython, lihat tutorial ini tentang cara membuat file ipython_config
env PYTHONSTARTUP="~/.startup.py"
tidak berhasil untuk sayaexport PYTHONSTARTUP=~/.python_shell_startup.py
untuk mengatur variabel.Untuk ipython, ada dua cara untuk mencapai ini. Keduanya melibatkan direktori konfigurasi ipython yang terletak di
~/.ipython
.~/.ipython/profile_default/startup/
Untuk mempermudah, saya akan menggunakan opsi 2. Yang harus Anda lakukan adalah menempatkan file
.py
atau.ipy
di~/.ipython/profile_default/startup
direktori dan secara otomatis akan dijalankan. Jadi Anda bisa menempatkan sederhanaimport numpy as np
dalam file sederhana dan Anda akan memiliki np di namespace dari prompt ipython Anda.Opsi 2 sebenarnya akan berfungsi dengan profil khusus, tetapi menggunakan profil khusus akan memungkinkan Anda untuk mengubah persyaratan startup dan konfigurasi lain berdasarkan kasus tertentu. Namun, jika Anda akan lebih selalu seperti
np
menjadi tersedia untuk Anda maka dengan segala cara meletakkannya di direktori startup.Untuk informasi lebih lanjut tentang konfigurasi ipython. The docs memiliki penjelasan yang jauh lebih lengkap.
sumber
~/.config/ipython/profile_default/startup/
dan bukan~/.ipython/profile_default/startup/
Saya menggunakan file ~ / .startup.py seperti ini:
Kemudian tentukan PYTHONSTARTUP = ~ / .startup.py, dan Python akan menggunakannya saat memulai shell.
Pernyataan cetak ada di sana jadi ketika saya memulai shell, saya mendapatkan pengingat bahwa itu berlaku, dan apa yang sudah diimpor. The
pp
shortcut benar-benar berguna juga ...sumber
~
sebagai pengganti$HOME
bekerja atau tidak, tetapi alih-alih jalur relatif ini saya harus menggunakan jalur absolut di MacOS, ikan, dan python3.Meskipun membuat skrip startup khusus seperti yang disarankan ravenac95 adalah jawaban umum terbaik untuk kebanyakan kasus, itu tidak akan berfungsi dalam keadaan di mana Anda ingin menggunakan file . Jika Anda terkadang bekerja dengan Python 2.x tetapi ingin menggunakan pembagian modern, hanya ada satu cara untuk melakukannya. Setelah Anda membuat profil, edit (Untuk Ubuntu tempat ini berada ) dan tambahkan sesuatu seperti berikut ke bawah:
from __future__ import X
profile_default
~/.ipython/profile_default
sumber
Sebagai alternatif yang lebih sederhana dari jawaban yang diterima, di linux:
cukup definisikan alias, misalnya masukkan
alias pynp='python -i -c"import numpy as np"'
file ~ / .bash_aliases Anda. Anda kemudian dapat memanggil python + numpy denganpynp
, dan Anda masih dapat menggunakan python denganpython
. Perilaku skrip Python tidak tersentuh.sumber
PYTHONSTARTUP
hanya dipanggil pada mode interaktif , jadi perilaku skrip python tetap tidak tersentuh. Alias juga dapat dibuat dengan referensi file:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Anda dapat membuat skrip python normal
import_numpy.py
atau apapun yang Anda sukalalu luncurkan dengan
-i
bendera.python -i import_numpy.py
Cara seperti ini akan memberi Anda fleksibilitas untuk memilih hanya modul yang Anda inginkan untuk proyek yang berbeda.
sumber
Seperti yang disebutkan ravenac95 dalam jawabannya , Anda dapat membuat profil kustom atau mengubah profil default. Jawaban ini adalah tampilan cepat dari perintah Linux yang diperlukan
import numpy as np
secara otomatis.Jika Anda ingin menggunakan profil khusus yang disebut
numpy
, jalankan:Atau jika Anda ingin mengubah profil default untuk selalu mengimpor numpy:
Lihat tutorial konfigurasi IPython untuk membaca lebih mendalam tentang mengonfigurasi profil. Lihat
.ipython/profile_default/startup/README
untuk memahami cara kerja direktori startup.sumber
ipython
Doa default saya adalah--pylab
telah menjadiipython
pilihan selama beberapa waktu. Itu mengimpornumpy
dan (bagian dari)matplotlib
. Saya telah menambahkan--Inter...
opsi sehingga tidak menggunakan*
impor, karena saya lebih suka menggunakan eksplisitnp....
.Ini bisa berupa jalan pintas, alias atau skrip.
sumber