বাফার চলাকালীন কীভাবে পাইথন শেলকে মডিউলগুলি পুনরায় আমদানি করতে বাধ্য করা যায়?


9

আমি পাইথন শেলটিতে বাফার প্রেরণের জন্য সিসি সিসি ব্যবহার করছি। শুরুতে বাফারের একটি আমদানি থাকে। আমি দেখেছি যে আমি যে মডিউলটি আমদানি করছি তা যদি আমি পরিবর্তন করি তবে আমি সিসি সিসির সাথে আবার বাফার চালালে পরিবর্তনগুলি প্রতিফলিত হয় না (মনে হয় ইনফেরিয়র পাইথন কেবল একবার আমদানি করছে)।

বাফারের প্রথম রানটিতে ইতিমধ্যে কল করা মডিউলগুলি কীভাবে আমি পাইথন শেলটিকে আবার আমদানি করতে বাধ্য করতে পারি?

উত্তর:



4

এটি আমার কর্মপ্রবাহ। আমি আইপিথন ব্যবহার করতে ইম্যাক্স সেট করেছি

(setq
 python-shell-interpreter "ipython3"
 python-shell-interpreter-args "--simple-prompt --pprint")

তারপরে ~ / .ipython / প্রোফাইল_default / startup / 00-ipython_init.py এ আমি নিম্নলিখিতটি রেখেছি:

ip = get_ipython()
ip.magic('load_ext autoreload')

তারপরে আমি যখনই আমি সংশোধন করি এবং আইপিথনে আমার মডিউলগুলি পুনরায় লোড করতে চাই তখন আমি এটি টাইপ করি। আমি এটি পছন্দ করি কারণ এটি সমস্ত মডিউলগুলির জন্য কাজ করে এবং আমদানি নির্ভরতা সম্পর্কে আমাকে চিন্তা করতে হবে না।

%autoreload

1

আপনি পাইথন-রানটি সংশোধন করে এবং পাইথন প্রক্রিয়াটি পুনরায় আরম্ভ করতে বাধ্য করে এটি করতে পারেন:

;; Run python and pop-up its shell.
;; Kill process to solve the reload modules problem.
(defun my-python-shell-run ()
  (interactive)
  (when (get-buffer-process "*Python*")
     (set-process-query-on-exit-flag (get-buffer-process "*Python*") nil)
     (kill-process (get-buffer-process "*Python*"))
     ;; Uncomment If you want to clean the buffer too.
     ;;(kill-buffer "*Python*")
     ;; Not so fast!
     (sleep-for 0.5))
  (run-python (python-shell-parse-command) nil nil)
  (python-shell-send-buffer)
  ;; Pop new window only if shell isnt visible
  ;; in any frame.
  (unless (get-buffer-window "*Python*" t) 
    (python-shell-switch-to-shell)))

(defun my-python-shell-run-region ()
  (interactive)
  (python-shell-send-region (region-beginning) (region-end))
  (python-shell-switch-to-shell))

(eval-after-load "python"
  '(progn
     (define-key python-mode-map (kbd "C-c C-c") 'my-python-shell-run)
     (define-key python-mode-map (kbd "C-c C-r") 'my-python-shell-run-region)
     (define-key python-mode-map (kbd "C-h f") 'python-eldoc-at-point)))

http://lgmoneda.github.io/2017/02/19/emacs-python-shell-config-eng.html


অপূর্ব সমাধান! তুমি আমাকে কয়েক ঘন্টা বাঁচিয়েছ! ধন্যবাদ!
দিমিত্রিসেমেনভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.