Tôi thấy mình phải gõ import numpy as np
gần như mọi lúc tôi khởi động trình thông dịch python. Làm cách nào để thiết lập trình thông dịch python hoặc ipython để numpy được nhập tự động?
Tôi thấy mình phải gõ import numpy as np
gần như mọi lúc tôi khởi động trình thông dịch python. Làm cách nào để thiết lập trình thông dịch python hoặc ipython để numpy được nhập tự động?
Câu trả lời:
Sử dụng biến môi trường PYTHONSTARTUP . Từ tài liệu chính thức:
Nếu đây là tên của một tệp có thể đọc được, các lệnh Python trong tệp đó sẽ được thực thi trước khi lời nhắc đầu tiên được hiển thị trong chế độ tương tác. Tệp được thực thi trong cùng một không gian tên nơi các lệnh tương tác được thực thi để các đối tượng được xác định hoặc nhập vào đó có thể được sử dụng mà không cần đủ điều kiện trong phiên tương tác.
Vì vậy, chỉ cần tạo một tập lệnh python với câu lệnh nhập và trỏ biến môi trường đến nó. Tuy nhiên, hãy nhớ rằng 'Rõ ràng luôn tốt hơn là ngầm hiểu', vì vậy đừng dựa vào hành vi này cho các kịch bản sản xuất.
Đối với Ipython, hãy xem hướng dẫn này về cách tạo tệp ipython_config
env PYTHONSTARTUP="~/.startup.py"
không làm việc cho tôi
export PYTHONSTARTUP=~/.python_shell_startup.py
để đặt biến.
Đối với ipython, có hai cách để đạt được điều này. Cả hai đều liên quan đến thư mục cấu hình của ipython được đặt trong đó ~/.ipython
.
~/.ipython/profile_default/startup/
Để đơn giản, tôi sẽ sử dụng tùy chọn 2. Tất cả những gì bạn phải làm là đặt một .py
hoặc .ipy
tệp vào ~/.ipython/profile_default/startup
thư mục và nó sẽ tự động được thực thi. Vì vậy, bạn có thể đơn giản đặt import numpy as np
vào một tệp đơn giản và bạn sẽ có np trong không gian tên của dấu nhắc ipython của bạn.
Tùy chọn 2 sẽ thực sự hoạt động với cấu hình tùy chỉnh, nhưng sử dụng cấu hình tùy chỉnh sẽ cho phép bạn thay đổi các yêu cầu khởi động và cấu hình khác dựa trên một trường hợp cụ thể. Tuy nhiên, nếu bạn luôn muốn np
có sẵn cho bạn thì bằng mọi cách hãy đặt nó vào thư mục khởi động.
Để biết thêm thông tin về cấu hình ipython. Tài liệu có một lời giải thích đầy đủ hơn nhiều.
~/.config/ipython/profile_default/startup/
và không~/.ipython/profile_default/startup/
Tôi sử dụng một tệp ~ / .startup.py như thế này:
# 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
Sau đó, xác định PYTHONSTARTUP = ~ / .startup.py và Python sẽ sử dụng nó khi khởi động một trình bao.
Các câu lệnh in ở đó vì vậy khi tôi khởi động trình bao, tôi nhận được lời nhắc rằng nó đang có hiệu lực và những gì đã được nhập. Các pp
phím tắt thực sự tiện dụng quá ...
~
thay thế cho $HOME
hoạt động hay không, nhưng thay vì đường dẫn tương đối này, tôi đã phải sử dụng một đường dẫn tuyệt đối trên MacOS, fish và python3.
Mặc dù tạo một tập lệnh khởi động tùy chỉnh như ravenac95 gợi ý là câu trả lời chung tốt nhất cho hầu hết các trường hợp, nhưng nó sẽ không hoạt động trong các trường hợp mà bạn muốn sử dụng a from __future__ import X
. Nếu đôi khi bạn làm việc bằng Python 2.x nhưng muốn sử dụng phép chia hiện đại, chỉ có một cách để thực hiện việc này. Khi bạn tạo một hồ sơ, hãy chỉnh sửa profile_default
(Đối với Ubuntu, cái này nằm trong ~/.ipython/profile_default
) và thêm một cái gì đó như sau vào dưới cùng:
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
Như một giải pháp thay thế đơn giản hơn cho câu trả lời được chấp nhận, trên linux:
chỉ cần xác định một bí danh, ví dụ như đặt alias pynp='python -i -c"import numpy as np"'
trong tệp ~ / .bash_aliases của bạn. Sau đó, bạn có thể gọi python + numpy với pynp
và bạn vẫn có thể chỉ sử dụng python với python
. Hành vi của các tập lệnh Python vẫn được giữ nguyên.
PYTHONSTARTUP
chỉ được gọi trên chế độ tương tác , do đó, hành vi của tập lệnh python luôn được giữ nguyên. Một bí danh cũng có thể được tạo bằng tham chiếu tệp:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Như ravenac95 đã đề cập trong câu trả lời của anh ấy , bạn có thể tạo một cấu hình tùy chỉnh hoặc sửa đổi cấu hình mặc định. Câu trả lời này là xem nhanh các lệnh Linux cần thiết để import numpy as np
tự động.
Nếu bạn muốn sử dụng cấu hình tùy chỉnh được gọi là numpy
, hãy chạy:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
Hoặc nếu bạn muốn sửa đổi cấu hình mặc định để luôn nhập numpy:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Xem hướng dẫn cấu hình IPython để đọc chuyên sâu hơn về cấu hình cấu hình. Xem .ipython/profile_default/startup/README
để hiểu cách hoạt động của thư mục khởi động.
Lời ipython
gọi mặc định của tôi là
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
đã là một ipython
lựa chọn trong một thời gian. Nó nhập khẩu numpy
và (các bộ phận của) matplotlib
. Tôi đã thêm --Inter...
tùy chọn để nó không sử dụng *
nhập, vì tôi thích sử dụngnp....
.
Đây có thể là một phím tắt, bí danh hoặc tập lệnh.