import numpy as np
Python yorumlayıcısını çalıştırdığım neredeyse her seferde kendimi yazarken buluyorum . Numpy'nin otomatik olarak içe aktarılması için python veya ipython yorumlayıcısını nasıl kurarım?
import numpy as np
Python yorumlayıcısını çalıştırdığım neredeyse her seferde kendimi yazarken buluyorum . Numpy'nin otomatik olarak içe aktarılması için python veya ipython yorumlayıcısını nasıl kurarım?
Yanıtlar:
PYTHONSTARTUP ortam değişkenini kullanın . Resmi belgelerden:
Okunabilir bir dosyanın adı bu ise, o dosyadaki Python komutları etkileşimli modda ilk komut görüntülenmeden önce yürütülür. Dosya, etkileşimli komutların yürütüldüğü aynı ad alanında çalıştırılır, böylece içinde tanımlanan veya içe aktarılan nesneler etkileşimli oturumda nitelendirme olmadan kullanılabilir.
Bu nedenle, import deyimi ile bir python betiği oluşturun ve ortam değişkenini ona işaret edin. Bunu söyledikten sonra, 'Açık'ın her zaman örtük olmaktan iyidir' olduğunu unutmayın, bu nedenle üretim komut dosyaları için bu davranışa güvenmeyin.
Ipython için, bir ipython_config dosyasının nasıl yapılacağına ilişkin bu eğiticiye bakın
env PYTHONSTARTUP="~/.startup.py"
benim için işe yaramadı
export PYTHONSTARTUP=~/.python_shell_startup.py
Değişkeni ayarlamak için sadece bir not .
İpython için bunu başarmanın iki yolu vardır. Her ikisi de ipython'un içinde bulunan yapılandırma dizinini içerir ~/.ipython
.
~/.ipython/profile_default/startup/
Basit olması için 2. seçeneği kullanırım. Tek yapmanız gereken dizine bir .py
veya .ipy
dosyası yerleştirmek ~/.ipython/profile_default/startup
ve otomatik olarak çalıştırılacaktır. Böylece import numpy as np
basit bir dosyada basit bir yer oluşturabilir ve ipython isteminizin ad alanında np'ye sahip olursunuz.
Seçenek 2 aslında özel bir profille çalışacaktır, ancak özel bir profil kullanmak, belirli bir duruma göre başlatma gereksinimlerini ve diğer yapılandırmayı değiştirmenize olanak tanır. Eğer olur Ancak, her zaman gibi np
tüm araçları başlangıç dizine koyun tarafından daha sonra size sunulan olmaktır.
İpython yapılandırması hakkında daha fazla bilgi için. Dokümanlar çok daha eksiksiz bir açıklama yoktur.
~/.config/ipython/profile_default/startup/
ve değil~/.ipython/profile_default/startup/
Bunun gibi bir ~ / .startup.py dosyası kullanıyorum:
# 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
Ardından PYTHONSTARTUP = ~ / .startup.py tanımlayın ve Python bir kabuk başlatırken bunu kullanacaktır.
Print ifadeleri oradadır, bu yüzden kabuğu başlattığımda, bunun yürürlükte olduğunu ve zaten içe aktarılmış olan bir hatırlatma alıyorum. pp
Kısayol da gerçekten kullanışlı ...
~
için bir yedek olarak $HOME
işlerin ya da değil, ama yerine bu göreceli yol Ben MacOS, balık ve python3 üzerinde mutlak bir yol kullanmak zorunda kaldı.
Gibi özel bir başlangıç komut dosyası oluştururken ravenac95 anlaşılacağı çoğu durum için en iyi genel yanıt olduğunu, bu size bir kullanmak istediğiniz durumlarda çalışma olmaz from __future__ import X
. Bazen Python 2.x'te çalışıyorsanız ancak modern bölme kullanmak istiyorsanız, bunu yapmanın tek bir yolu vardır. Bir profil oluşturduktan sonra, profile_default
(Ubuntu için bu konumdadır ~/.ipython/profile_default
) düzenleyin ve aşağıya aşağıdaki gibi bir şey ekleyin:
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
Kabul edilen cevaba daha basit bir alternatif olarak, linux'ta:
sadece bir takma ad tanımlayın, örneğin alias pynp='python -i -c"import numpy as np"'
~ / .bash_aliases dosyanıza koyun . Daha sonra python + numpy ile çalıştırabilirsiniz pynp
ve yine de sadece python kullanabilirsiniz python
. Python betiklerinin davranışına dokunulmadan bırakılır.
PYTHONSTARTUP
yalnızca etkileşimli modda çağrılır , bu nedenle python komut dosyalarının davranışına hiçbir şekilde dokunulmadan kalır. Bir dosya referansıyla bir takma ad da oluşturulabilir:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Normal bir python betiği import_numpy.py
veya istediğiniz herhangi bir şey oluşturabilirsiniz
#!/bin/env python3
import numpy as np
ardından -i
bayrakla başlatın .
python -i import_numpy.py
Bunun gibi, size yalnızca farklı projeler için istediğiniz modülleri seçme esnekliği sağlayacaktır.
Gibi ravenac95 onun sözü cevap , ya özel bir profil oluşturmak veya varsayılan profili değiştirebilir. Bu cevap, import numpy as np
otomatik olarak ihtiyaç duyulan Linux komutlarının hızlı bir görünümüdür .
Adlı özel bir profil kullanmak istiyorsanız numpy
, şunu çalıştırın:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
Ya da varsayılan profili her zaman numpy içe aktaracak şekilde değiştirmek isterseniz:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Profilleri yapılandırma hakkında daha fazla bilgi edinmek için IPython yapılandırma eğitimine göz atın . .ipython/profile_default/startup/README
Başlangıç dizininin nasıl çalıştığını anlamak için bakın .
Varsayılan ipython
çağrım
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
bir süredir bir ipython
seçenek olmuştur . İthal eder numpy
ve (kısımlarını) matplotlib
. Açık olanı kullanmayı tercih ettiğimden içe aktarmayı --Inter...
kullanmaması için seçeneği ekledim .*
np....
Bu bir kısayol, takma ad veya komut dosyası olabilir.