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?
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?
Jawaban:
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 saya
export 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 sederhana import 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.
~/.config/ipython/profile_default/startup/
dan bukan~/.ipython/profile_default/startup/
Saya menggunakan file ~ / .startup.py seperti ini:
# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")
pp = pprint.pprint
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 ...
~
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
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
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 dengan pynp
, dan Anda masih dapat menggunakan python dengan python
. Perilaku skrip Python tidak tersentuh.
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 suka
#!/bin/env python3
import numpy as np
lalu 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.
Seperti yang disebutkan ravenac95 dalam jawabannya , Anda dapat membuat profil kustom atau mengubah profil default. Jawaban ini adalah tampilan cepat dari perintah Linux yang diperlukanimport numpy as np
secara otomatis.
Jika Anda ingin menggunakan profil khusus yang disebut numpy
, jalankan:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
Atau jika Anda ingin mengubah profil default untuk selalu mengimpor numpy:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Lihat tutorial konfigurasi IPython untuk membaca lebih mendalam tentang mengonfigurasi profil. Lihat .ipython/profile_default/startup/README
untuk memahami cara kerja direktori startup.
ipython
Doa default saya adalah
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
telah menjadi ipython
pilihan selama beberapa waktu. Itu mengimpor numpy
dan (bagian dari) matplotlib
. Saya telah menambahkan --Inter...
opsi sehingga tidak menggunakan *
impor, karena saya lebih suka menggunakan eksplisit np....
.
Ini bisa berupa jalan pintas, alias atau skrip.