দূর থেকে আইপিথন চালানো


9

আমি একটি আইপথন ইন্টারপ্রেটারকে দূর থেকে চালানোর চেষ্টা করছি (ইমাস ২৪.৫ এবং নেটিভ সহ python.el) তবে আমি সঠিক নীতি সম্পর্কে নিশ্চিত নই: যখনই আমি যেমন একটি কমান্ড উদাহরণস্বরূপ চালানোর চেষ্টা করি (যা দিয়ে ট্রিগার হয় C-c C-c):

Run Python: /ssh:<server_name>:/usr/local/bin/ipython -i

( <server_name>আমার বৈধ এন্ট্রি সহ ~/.ssh/config, এবং ipythonসেই দূরবর্তী অবস্থানে উপলভ্য), আমি একটি ত্রুটি পেয়েছি:

Warning (emacs): Python shell prompts cannot be detected.
If your emacs session hangs when starting python shells
recover with `keyboard-quit' and then try fixing the
interactive flag for your interpreter by adjusting the
`python-shell-interpreter-interactive-arg' or add regexps
matching shell prompts in the directory-local friendly vars:
  + `python-shell-prompt-regexp'
  + `python-shell-prompt-block-regexp'
  + `python-shell-prompt-output-regexp'
Or alternatively in:
  + `python-shell-prompt-input-regexps'
  + `python-shell-prompt-output-regexps'

পাশাপাশি:

env: /ssh:<server_name>:/usr/local/bin/ipython: No such file or directory

একটি *Python*বাফার .. এই তৈরীর ব্যবহার কি tramp, এবং python.elএমনভাবে দূরবর্তী দোভাষী চালাতে পারবেন?

উত্তর:


5

একটি উপায় ব্যবহার করা হয় *eshell*

  • M-x eshell
  • cd /ssh:<server_name>:~
  • run-python /usr/bin/ipython
  • *Python*বাফারে স্যুইচ করুন ।

3
এটি দুর্দান্ত, তবে এটি পাইথন বাফারে কোড পাঠানো সম্ভব করে না । এটা কি ঠিক?
বাকাকুনা

@ বাকাকুনা আমি সমাধান করেছি যে আমার উত্তরটি পরীক্ষা করে দেখুন
গত

4

@ সার্ভ-ইনস উত্তরটি এখানে সর্বোত্তম পন্থা:

(সেটেক্ট পাইথন-শেল-ইন্টারপ্রেটার "এসএসএস আপনার হোস্ট আইপিথন" পাইথন-শেল-ইন্টারপ্রিটার-আরগস "- সিম্পল-প্রম্পট -i")

তবে ত্রুটি সহ এটি এখনও ব্যর্থ হবে:

No such file or directory, ssh\

আপনাকে অবশ্যই আপনার পথের একটি নির্বাহযোগ্যকে উল্লেখ করতে হবে, সুতরাং সরাসরি শেল কমান্ডগুলি বাজায় না, তবে একটি র‍্যাপার স্ক্রিপ্ট লিখে এটি সমাধান করবে, আসুন এটি নাম দিন remote-python:

#!/usr/bin/env bash
ssh hostname -t "ipython $@"

-t সিউডো টার্মিনাল বরাদ্দ বাধ্য করবে।

$@ সমস্ত প্রাপ্ত আর্গুমেন্ট রিমোট আইপথনে জমা দেবে।

এই স্ক্রিপ্টটি অবশ্যই কোনও ডিরেক্টরিতে থাকতে হবে যা আপনার PATHভেরিয়েবলের মধ্যে সংজ্ঞাযুক্ত। আপনি এটি ইমাসের ভিতরে এটি পরীক্ষা করতে পারেন:

(getenv "PATH")

তারপরে আপনি remot-pythonআপনার দোভাষী হিসাবে সেট করতে পারেন :

(setq python-shell-interpreter "remote-python"
            python-shell-interpreter-args "-i --simple-prompt")

আপনি যদি রেডলাইন সহায়তা সম্পর্কে একটি সতর্কতা পান:

(setq python-shell-completion-native-enable nil)

বিঃদ্রঃ:

এই পদ্ধতির সৌন্দর্য, এটি প্রায় প্রতিটি দোভাষীর সাথে কাজ করা উচিত। আমি এটিকে জুলিয়া-মোডের আরপিএল দিয়েও পরীক্ষা করেছি এবং আপনি আপনার দূরবর্তী / স্থানীয় দোভাষীগুলিকে স্যুইচ করার জন্য একটি ইন্টারেক্টিভ ফাংশন লিখতে পারেন।


এটি কিছুটা সহায়তা করেছে তা জেনে রাখা ভাল। ধন্যবাদ
সার্ভ-ইন 10

0

মূল্যায়নের চেষ্টা করুন (বা এমনকি মধ্যে .emacs)

(setq python-shell-interpreter "ssh yourhost ipython"
      python-shell-interpreter-args "--simple-prompt -i")

এবং যেকোন অজগর ফাইলে আপনার স্থানীয় এভালের মতো ব্যবহার করুন।

প্রথম লাইনটি ipythonআপনার ডিফল্ট ইন্টারপ্রেটার হিসাবে রিমোট সেট করে । দ্বিতীয় লাইন একটি আইপথন সমস্যা সংশোধন করে।

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