উইন্ডোজ থেকে একটি রাস্পবেরি পাইথন স্ক্রিপ্ট বিকাশ করুন


10

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

আমি এটি খুঁজে পেয়েছি: http://visualgdb.com/tutorials/raspberry/ যা আমাকে রাস্পবেরির জন্য একটি সি + অ্যাপ্লিকেশন বিকাশ করতে, এটিকে দূরবর্তী এবং আরও অনেকগুলি সংকলন করার অনুমতি দেয় বলে মনে হচ্ছে।

পাইথন স্ক্রিপ্ট বিকাশের জন্য কি সমতুল্য কিছু আছে?

যা মূলত আমাকে অনুমতি দেবে:

  1. আমার উইন্ডোতে অজগরের বিকাশ করতে
  2. "রান" বোতামটি টিপুন এবং স্ক্রিপ্ট (গুলি) আরপিআই-তে স্থাপন করা হয়েছে এবং চালু করতে হবে
  3. (স্বপ্ন-সমাধান) ব্রেকপয়েন্ট এবং ডিবাগ লাগাতে?

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

আমার কাছে বর্তমানে একটি গিট আছে, তবে এটি এখানে সত্যিই প্রশ্ন নয়
J4N

সুতরাং কেন এটি একটি মন্তব্য এবং উত্তর নয়;)
জেমস মের্টজ

মোটামুটি যথেষ্ট :) দুঃখিত
J4N

উত্তর:


4

পরীক্ষা করে দেখুন PyCharm । আমি বছরের পর বছর ধরে সুখী গ্রাহক, তবে একটি বিনামূল্যে সম্প্রদায় সংস্করণও পাওয়া যায়।

একটি ফাইল ওয়াচার প্লাগইন রয়েছে যা দূরবর্তী মেশিনে (আপনার আরপিআই) ফাইলগুলি অনুলিপি করবে। এবং এটা সঞ্চালন করার ক্ষমতা থাকবে দূরবর্তী ডিবাগ করা

ডিবাগিং মডিউলগুলি ওয়্যার আপ করুন

পাইচার্ম রিমোট ডিবাগিং সেটআপ করার ক্ষেত্রে, প্রথমে করণীয়টি তারের আপ করা উচিত pycharm-debug.egg। আমি একটি ম্যাকে আছি এবং আমার ক্ষেত্রে ফাইলটি রয়েছে /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg। কমান্ডটি দিয়ে আমি এটি আমার আরপিআইতে অনুলিপি করেছিলাম:

scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:

এই ফাইলটি খুঁজে পাওয়ার জন্য পাইথনের পথে কোথাও থাকা দরকার। নিম্নলিখিতটি চালিয়ে আমি একটি উপযুক্ত জায়গাটির সন্ধান করেছি:

pi@mediapi ~ $ python -c 'import sys; print sys.path'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']

সেই তালিকা থেকে আমি বিশ্বাস করি /usr/local/lib/python2.7/dist-packages/যে সবচেয়ে উপযুক্ত (কারণ এটি এতে রয়েছে /usr/local), তাই:

sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/

এবং .pthএটিতে ইনজেকশনের জন্য আমাদের একটি ফাইল দরকার :

pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth

ফাইনালি, সেটআপ যাচাই করুন:

pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>

দুর্দান্ত, ডিবাগিং মডিউলগুলি তারযুক্ত are একটি স্ক্রিপ্ট ডিবাগ করার জন্য। আমি এই পোস্টের জন্য আমি যে শ্রোতা স্ক্রিপ্ট লিখেছি তা ডিবাগ করতে যাচ্ছি ।

পাইচার্ম সেটআপ

পাইচার্মে, যান Run -> Edit Configurations...

+উপরের বাম দিকে চিহ্নটি চাপুন এবং নির্বাচন করুন Python Remote Debug। কেবল এটির একটি নাম দিন, remote debugএবং আপনি এখানে সম্পন্ন করেছেন; ঠিক আছে আঘাত।

রিমোট ডিবাগ কনফিগারেশন

এখন ক্লিক করুন Run -> Debug 'remote debug'এবং আপনি ডিবাগ কনসোলে একটি বার্তা দেখতে পাবেন,Use the following code to connect to the debugger

লাইনগুলি অনুলিপি করুন, আমার ক্ষেত্রে এগুলি দেখতে দেখতে শেষ হয়েছে:

import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)

আপনি ডিবাগ করছেন এমন ফাইলের শীর্ষে এগুলি আটকান এবং ফাইলটি সংরক্ষণ করুন।

ফাইল সিঙ্ক প্লাগইন ব্যবহার না করেই আমি আরএসসিএনসি ব্যবহার করে ফাইলগুলি অনুলিপি করি:

[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/

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

[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi

পাইচার্ম আপনাকে বার্তা প্রদর্শন করবে Waiting for process connection...

প্রক্রিয়া সংযোগের জন্য অপেক্ষা করছি

আরপিআই-তে, প্রোগ্রামটি চালান এবং আপনি ডিবাগার কিকটি দেখতে পাবেন default ডিফল্টরূপে এটি পাইদেবড লাইনের ঠিক পরে লাইনে বিরাম দেয়, যা আপনি চাইলে কনফিগারেশনে পরিবর্তন করতে পারেন।

এবং এই মুহুর্তে আপনি দূর থেকে ডিবাগ করছেন! :)

দূরবর্তী স্ক্রিপ্টে ব্রেকপয়েন্ট


আমি একবার খেয়াল করব, ইতিমধ্যে কিছুক্ষণের জন্য আমার রিশার্পার আছে :)
জে

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

উত্তরটি একটি দূরবর্তী ডিবাগিং ওভারভিউ দিয়ে আপডেট করা হয়েছে। @ ক্রোনস
বার্টো

1

একটি বিকল্প হ'ল আপনার পাইথন স্ক্রিপ্টগুলি একটি নেটওয়ার্ক ড্রাইভে সঞ্চয় করা।

উদাহরণস্বরূপ আমি কোড কোড নামে একটি ডিরেক্টরিতে আমার সমস্ত কোড ল্যাপটপে রাখি (যথাযথভাবে ব্যাক আপ করা হয়)। আমি এনএফএস ব্যবহার করে ডিরেক্টরিটি নেটওয়ার্কে রফতানি করি।

পাইতে ল্যাপটপ এনএফএস ডিরেক্টরিটি / কোডে ম্যাপ করা হয়।

এটি আমাকে ল্যাপটপে (বা পাই) বিকাশ করতে এবং পাইতে স্ল্যাশ করে এবং / কোড / স্ক্রিপ্ট.পি ব্যবহার করে পাইতে স্ক্রিপ্টটি চালাতে দেয়।

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


আমি ইতিমধ্যে চেষ্টা করেছি যে নেটওয়ার্ক শেয়ারগুলি একটি সম্ভাবনা, তবে এখনও এটি পাইতে যেতে, প্রতিবার চালু এবং থামানো দরকার এবং কখনও কখনও ডিবাগিংয়ের অনুমতি দেব না।
J4N

2
@ জে 4 এন আমার সাধারণত পাইতে ল্যাপটপে একটি স্থায়ী এসএসএইচ টার্মিনাল উইন্ডো খোলা থাকত। সুতরাং স্ক্রিপ্ট চালানো ঠিক তীর হতে হবে, ফিরে। আমার ডিবাগ করতে সমস্যা হয়নি। আমি যেমন বলি যে ব্যাকট্রেস প্রচুর তথ্য সরবরাহ করবে এবং অন্য কোনও কিছুর জন্য স্ক্রিপ্টের চারদিকে ছড়িয়ে ছিটিয়ে থাকা কয়েকটি প্রিন্ট সাধারণত সমস্যাটি খুঁজে পায়।
Joan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.