Hướng dẫn how to restart python shell - làm thế nào để khởi động lại trình bao python

7

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Trong Idle trên Windows, trên thanh menu, có một menu Shell. Một trong những mục trên menu shell là 'khởi động lại shell'. Menu Shell không có sẵn trong Idle trên Linux.

Lệnh khởi động lại shell rất hữu ích sau khi bạn đã thực hiện thay đổi trong một mô -đun và muốn chạy lại mô -đun trong shell.

Trong Idle on Linux, tôi phải đóng Idle và mở lại cho Shell để nhận thấy sự thay đổi trong mô -đun.

Làm thế nào tôi có thể khởi động lại vỏ mà không đóng và mở lại toàn bộ?

Đã hỏi ngày 18 tháng 11 năm 2011 lúc 20:38Nov 18, 2011 at 20:38

Hướng dẫn how to restart python shell - làm thế nào để khởi động lại trình bao python

Nếu bạn muốn hiển thị các thay đổi trong mô -đun, chỉ cần gọi một cái gì đó như vậy (trong đó my_module là mô -đun của bạn mà bạn đã cập nhật):

reload(my_module)

Xem tài liệu trên reload().

Nó có giúp ích gì không?

Đã trả lời ngày 18 tháng 11 năm 2011 lúc 20:42Nov 18, 2011 at 20:42

TadecktadeckTadeck

128K28 Huy hiệu vàng149 Huy hiệu bạc197 Huy hiệu đồng28 gold badges149 silver badges197 bronze badges

2

Khởi động lại Shell có phím tắt của Ctrl+F6, bạn luôn có thể thử điều đó.

Đã trả lời ngày 18 tháng 11 năm 2011 lúc 20:41Nov 18, 2011 at 20:41

rtpgrtpgrtpg

2.3791 Huy hiệu vàng18 Huy hiệu bạc31 Huy hiệu đồng1 gold badge18 silver badges31 bronze badges

0

Nhớ có hai chế độ hoạt động - với quy trình con và không có nó. Tùy chọn 'Khởi động lại shell' chỉ có sẵn với quy trình con. Chế độ mặc định là với quy trình con, nhưng nó có thể được thay đổi bằng cách sử dụng đối số '-n' khi bắt đầu nhàn rỗi.

Rõ ràng, mục menu bắt đầu nhàn rỗi trên Linux thực hiện điều đó với đối số '-n'. Mở nhàn rỗi mà không có cờ này và tùy chọn 'khởi động lại' của bạn sẽ quay lại.

Đã trả lời ngày 11 tháng 10 năm 2012 lúc 22:33Oct 11, 2012 at 22:33

sguyguysguy

1086 Huy hiệu Đồng6 bronze badges

Vỏ Python và nhàn rỗi là gì?cannot restart a process in Python, instead you must create and start a new process with the same configuration.

Idle là môi trường phát triển Python tiêu chuẩn. Tên của nó là một từ viết tắt của "môi trường phát triển tích hợp". Nó hoạt động tốt trên cả nền tảng Unix và Windows. Nó có một cửa sổ Python Shell, cho phép bạn truy cập vào chế độ tương tác Python.simulate restarting a process in Python.

Bạn không thể khởi động lại một quy trình trong Python, thay vào đó bạn phải tạo và bắt đầu một quy trình mới với cùng một cấu hình.

  • Trong hướng dẫn này, bạn sẽ khám phá cách mô phỏng việc khởi động lại một quy trình trong Python.
  • Bắt đầu nào.
  • Cần khởi động lại một quy trình
  • Cách khởi động lại một quy trình
  • Quá trình cha mẹ sau đó tạo ra một thể hiện quy trình con mới với cùng một cấu hình, bắt đầu và tham gia nó. Như chúng tôi mong đợi, quá trình mới này thực hiện mà không gặp sự cố.
  • Câu hỏi phỏng vấn API đa xử lý

Khởi động đa bộ xử lý (khóa học 7 ngày của tôi)process is a running instance of a computer program.

Takeaways

Đôi khi chúng ta có thể cần tạo các quy trình con mới trong chương trình của mình để thực thi mã đồng thời.

Python cung cấp khả năng tạo và quản lý các quy trình mới thông qua lớp đa xử lý.multiprocessing.Process class.

Bạn có thể tìm hiểu thêm về đa xử lý trong hướng dẫn:

  • Đa bộ xử lý trong Python: Hướng dẫn hoàn chỉnh

Có thể có những trường hợp các quy trình mới của chúng tôi bị chấm dứt, thông thường bằng cách hoàn thành việc thực thi của họ hoặc bằng cách gây ra lỗi và chúng tôi cần khởi động lại chúng.

Điều này có thể là vì nhiều lý do như:

  • Quá trình thực hiện một hành động hữu ích mà chúng tôi muốn chạy định kỳ.
  • Quá trình này là một nhiệm vụ nền Daemon mà chúng tôi muốn luôn chạy.
  • Quá trình này đang thực hiện một nhiệm vụ có thể được khởi động lại từ điểm kiểm tra.

Một quá trình có thể được khởi động lại trong Python và nếu có thì làm thế nào?

Cách khởi động lại một quy trình

Quá trình Python không thể được khởi động lại hoặc tái sử dụng.

Trên thực tế, đây có lẽ là một hạn chế của khả năng của các quy trình được cung cấp bởi hệ điều hành cơ bản.

Khi một quá trình đã chấm dứt, bạn không thể gọi phương thức start () trên nó một lần nữa để sử dụng lại nó.start() method on it again to reuse it.

Hãy nhớ lại rằng một quá trình có thể chấm dứt vì nhiều lý do như nêu ra lỗi hoặc ngoại lệ hoặc khi nó hoàn thành thực thi hàm Run () của nó.run() function.

Gọi hàm start () trên một quy trình chấm dứt sẽ dẫn đến một AssitSError chỉ ra rằng quá trình chỉ có thể được bắt đầu một lần.start() function on a terminated process will result in an AssertionError indicating that the process can only be started once.

  • AssitSerError: Không thể bắt đầu một quá trình hai lần

Thay vào đó, để khởi động lại một quy trình trong Python, bạn phải tạo một thể hiện mới của quy trình với cùng một cấu hình và sau đó gọi hàm start ().start() function.

Bây giờ chúng ta biết rằng chúng ta không thể khởi động lại một quy trình mà thay vào đó phải tạo lại và bắt đầu một quy trình mới, hãy để Lôi xem xét một số ví dụ đã làm việc.

Bị nhầm lẫn bởi API mô -đun đa xử lý? Tải xuống bảng cheat pdf miễn phí của tôi
Download my FREE PDF cheat sheet

Ví dụ về việc khởi động lại quá trình chấm dứt

Chúng ta có thể khám phá những gì xảy ra khi chúng ta cố gắng bắt đầu một quá trình chấm dứt trong Python.

Trong ví dụ này, chúng tôi sẽ tạo một quy trình mới để thực hiện chức năng tác vụ đích, chờ quá trình mới chấm dứt, sau đó cố gắng khởi động lại nó. Chúng tôi hy vọng nó sẽ thất bại với một AssitSerror.AssertionError.

Đầu tiên, hãy để xác định chức năng tác vụ đích để thực hiện trong một quy trình mới.

Chức năng trước tiên sẽ chặn trong giây lát, sau đó sẽ báo cáo một tin nhắn để cho chúng tôi biết rằng quy trình mới đang thực hiện.

# Hàm mục tiêu tùy chỉnh

nhiệm vụ def ():task():

& nbsp; & nbsp; & nbsp; & nbsp;# block trong giây lát# block for a moment

    sleep(1)sleep(1)

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo một tin nhắn# report a message

& nbsp; & nbsp; & nbsp; & nbsp; in ('Xin chào từ quy trình mới')print('Hello from the new process')

Tiếp theo, quy trình chính sẽ tạo ra một thể hiện của lớp đa xử lý và cấu hình nó để thực thi chức năng tác vụ tùy chỉnh () của chúng tôi thông qua từ khóa Target Target.multiprocessing.Process class and configure it to execute our custom task() function via the “target” keyword.

.....

# Tạo một quy trình mới

process=Process(target=task)=Process(target=task)

Sau đó, chúng tôi bắt đầu thực hiện quy trình sẽ thực thi chức năng Run () và lần lượt gọi hàm T dụng cụ tùy chỉnh () của chúng tôi.run() function and in turn call our custom task() function.

.....

# Tạo một quy trình mới

process.start().start()

Sau đó, chúng tôi bắt đầu thực hiện quy trình sẽ thực thi chức năng Run () và lần lượt gọi hàm T dụng cụ tùy chỉnh () của chúng tôi.

.....

# Tạo một quy trình mới

process.join().join()

Sau đó, chúng tôi bắt đầu thực hiện quy trình sẽ thực thi chức năng Run () và lần lượt gọi hàm T dụng cụ tùy chỉnh () của chúng tôi.

.....

# Tạo một quy trình mới

process.start().start()

Sau đó, chúng tôi bắt đầu thực hiện quy trình sẽ thực thi chức năng Run () và lần lượt gọi hàm T dụng cụ tùy chỉnh () của chúng tôi.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# Bắt đầu quá trình

Tiếp theo, quy trình mẹ tham gia quy trình con mới sẽ chặn (không trả lại) cho đến khi quá trình mới chấm dứt.

# Chờ quá trình kết thúctime import sleep

Cuối cùng, quá trình cha mẹ sẽ cố gắng bắt đầu lại quá trình chấm dứt.multiprocessing import Process

# Hàm mục tiêu tùy chỉnh

nhiệm vụ def ():task():

& nbsp; & nbsp; & nbsp; & nbsp;# block trong giây lát# block for a moment

    sleep(1)sleep(1)

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo một tin nhắn# report a message

& nbsp; & nbsp; & nbsp; & nbsp; in ('Xin chào từ quy trình mới')print('Hello from the new process')

Tiếp theo, quy trình chính sẽ tạo ra một thể hiện của lớp đa xử lý và cấu hình nó để thực thi chức năng tác vụ tùy chỉnh () của chúng tôi thông qua từ khóa Target Target.

if__name__=='__main__':__name__=='__main__':

...# create a new process

    process=Process(target=task)process =Process(target=task)

# Tạo một quy trình mới# start the process

    process.start()process.start()

Sau đó, chúng tôi bắt đầu thực hiện quy trình sẽ thực thi chức năng Run () và lần lượt gọi hàm T dụng cụ tùy chỉnh () của chúng tôi.# wait for the process to finish

    process.join()process.join()

# Bắt đầu quá trình# try and start the process again

    process.start()process.start()

Tiếp theo, quy trình mẹ tham gia quy trình con mới sẽ chặn (không trả lại) cho đến khi quá trình mới chấm dứt.

# Chờ quá trình kết thúc

Cuối cùng, quá trình cha mẹ sẽ cố gắng bắt đầu lại quá trình chấm dứt.

# Hãy thử và bắt đầu lại quá trìnhAssertionError, as we expected.

Tying này lại với nhau, ví dụ hoàn chỉnh được liệt kê dưới đây.

# SuperfastPython.com

...

AssitSerError: Không thể bắt đầu một quá trình hai lần

Thay vào đó, để khởi động lại một quy trình trong Python, bạn phải tạo một thể hiện mới của quy trình với cùng một cấu hình và sau đó gọi hàm start ().start() method (e.g. restart) a process that has already terminated.

Tiếp theo, hãy để Lôi nhìn vào một cách tiếp cận thay thế để tạo một thể hiện quy trình mới.


Khóa học đa xử lý Python miễn phí

Tải xuống bảng cheat API đa xử lý của tôi và như một phần thưởng, bạn sẽ có quyền truy cập miễn phí vào khóa học email 7 ngày của tôi.

Khám phá cách sử dụng mô -đun đa xử lý Python bao gồm cách tạo và bắt đầu các quá trình con và cách sử dụng khóa và semaphores.

Tìm hiểu thêm & NBSP;
 


Ví dụ về việc khởi động lại một quy trình với một thể hiện mới

Chúng ta có thể mô phỏng việc khởi động lại một quy trình bằng cách tạo một quy trình mới với cùng một cấu hình và bắt đầu nó thay thế.

Một quy trình mới có cùng cấu hình có thể được tạo.

Điều này liên quan đến các đối số cho bộ xây dựng lớp đa xử lý.multiprocessing.Process class constructor such as:

  • Hàm mục tiêu.
  • Đối số chức năng đích (tuple hoặc dict).
  • Name.
  • Daemon.

Nếu chúng tôi xem lại mã nguồn cho lớp đa xử lý._name, _target, _args, and so on.

Thay vì cố gắng truy cập các thuộc tính riêng này, thay vào đó chúng ta có thể tạo một thể hiện quy trình mới và chỉ định các đối số cho hàm tạo theo cách thủ công.

.....

# Tạo một quy trình mới với cùng một cấu hình

process2=Process(target=task)=Process(target=task)

Sau đó, bắt đầu và tham gia nó như trước đây.

.....

# Tạo một quy trình mới với cùng một cấu hình

process2.start().start()

Sau đó, bắt đầu và tham gia nó như trước đây.

process2.join().join()

# Bắt đầu quá trình mới

# Đợi quá trình mới kết thúc

Cho rằng chúng ta phải định cấu hình thủ công một thể hiện quy trình mới, có thể có ý nghĩa khi sử dụng chức năng nhà máy trả về một thể hiện quy trình mới với cấu hình ưa thích trong những trường hợp có thể cần phải khởi động lại.

Ví dụ:create_process()

returnProcess(target=task)Process(target=task)

# Nhà máy để tạo quy trình được cấu hình theo cách chúng ta thích

def create_process ()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

Chúng tôi đã giành chiến thắng sử dụng một chức năng nhà máy trong trường hợp này vì quy trình của chúng tôi có cấu hình đơn giản.

Kết hợp điều này lại với nhau, ví dụ hoàn chỉnh về việc mô phỏng một quá trình khởi động lại với một thể hiện mới được liệt kê dưới đây.

# SuperfastPython.comtime import sleep

# Ví dụ về việc khởi động lại một quá trìnhmultiprocessing import Process

từ thời gian nhập vào giấc ngủ

Từ quá trình nhập bộ xử lý đa xử lýtask():

# Hàm mục tiêu tùy chỉnh# block for a moment

    sleep(1)sleep(1)

nhiệm vụ def ():# report a message

& nbsp; & nbsp; & nbsp; & nbsp;# block trong giây látprint('Hello from the new process')

& nbsp; & nbsp; & nbsp; & nbsp;# báo cáo một tin nhắn

if__name__=='__main__':__name__=='__main__':

& nbsp; & nbsp; & nbsp; & nbsp; in ('Xin chào từ quy trình mới')# create a new process

    process=Process(target=task)process =Process(target=task)

# Điểm vào# start the process

    process.start()process.start()

& nbsp; & nbsp; & nbsp; & nbsp;# tạo một quy trình mới# wait for the process to finish

    process.join()process.join()

& nbsp; & nbsp; & nbsp; & nbsp;# bắt đầu quá trình# create a new process with the same config

    process2=Process(target=task)process2=Process(target=task)

& nbsp; & nbsp; & nbsp; & nbsp;# chờ quá trình kết thúc# start the new process

    process2.start()process2.start()

& nbsp; & nbsp; & nbsp; & nbsp;# tạo một quy trình mới với cùng một cấu hình# wait for the new process to finish

    process2.join()process2.join()

& nbsp; & nbsp; & nbsp; & nbsp;# Bắt đầu quy trình mới

& nbsp; & nbsp; & nbsp; & nbsp;# chờ quá trình mới kết thúc

Chạy ví dụ đầu tiên tạo ra quá trình và chạy nó như trước.

Quá trình cha mẹ tham gia vào quy trình con mới cho đến khi nó chấm dứt.

Quá trình cha mẹ tham gia vào quy trình con mới cho đến khi nó chấm dứt.

Quá trình cha mẹ sau đó tạo ra một thể hiện quy trình con mới với cùng một cấu hình, bắt đầu và tham gia nó. Như chúng tôi mong đợi, quá trình mới này thực hiện mà không gặp sự cố.

Xin chào từ quá trình mới

  • Đọc thêm
  • Phần này cung cấp các tài nguyên bổ sung mà bạn có thể thấy hữu ích.
  • Đa xử lý-song song dựa trên quy trình
  • Đa xử lý: Hướng dẫn hoàn chỉnh
  • Tờ Cheat API mô -đun đa xử lý

Câu hỏi phỏng vấn API đa xử lý

Khởi động đa bộ xử lý (khóa học 7 ngày của tôi)

Takeaways
Ask your questions in the comments below and I will do my best to answer.

Bây giờ bạn biết cách khởi động lại một quá trình trong Python.

Làm cách nào để khởi động lại chương trình vỏ Python?

Bây giờ, trong vỏ Python, bạn sẽ phải nhấn nút chạy và sau đó 'Chạy mô -đun (F5)' hoặc chỉ là phím F5 trên bàn phím của bạn.Đó là lần đầu tiên bạn chạy nó.Khi chương trình kết thúc, bạn sẽ quay lại tệp phô mai của mình và sau đó nhấn F5 để chạy lại chương trình.press either the Run button and then 'Run Module (F5)' or just the F5 key on your keyboard. That is the first time you run it. When the program ended, you would go back to your Cheese.py file and then press F5 to run the program again.

Là phím tắt để khởi động lại vỏ python?

Câu trả lời.Khởi động lại Shell có phím tắt của Ctrl+F6, bạn luôn có thể thử điều đó.ctrl+F6, you could always try that.

Nó có nghĩa là gì để khởi động lại shell?

Nó chỉ đơn giản có nghĩa là việc nhàn rỗi nội bộ tự khởi động lại trước khi thực hiện chương trình của bạn, do đó xóa tất cả các thông tin ở trên để các biến từ các chương trình trước đó sẽ không gây rối với chương trình của bạn.the IDLE internally restarts itself before executing your program, thus clearing all the information above so the variables from earlier programs will not mess with your program.

Vỏ Python và nhàn rỗi là gì?

Idle là môi trường phát triển Python tiêu chuẩn.Tên của nó là một từ viết tắt của "môi trường phát triển tích hợp".Nó hoạt động tốt trên cả nền tảng Unix và Windows.Nó có một cửa sổ Python Shell, cho phép bạn truy cập vào chế độ tương tác Python.. Its name is an acronym of "Integrated DeveLopment Environment". It works well on both Unix and Windows platforms. It has a Python shell window, which gives you access to the Python interactive mode.