আইফোন অ্যাপে পাইথন এম্বেড করা হচ্ছে


96

সুতরাং এটি একটি নতুন সহস্রাব্দ; আপেল তাদের হাত দুলিয়েছে; আইফোন (অ্যাপ স্টোর) অ্যাপে পাইথন ইন্টারপ্রেটার অন্তর্ভুক্ত করা এখন আইনী।

এই কাজটি সম্পর্কে কেউ কীভাবে যায়? সমস্ত বিদ্যমান আলোচনা (আশ্চর্যজনকভাবে) জেলব্রেকিংকে বোঝায়। (পুরানো প্রশ্ন: আমি পাইথন ব্যবহার করে আইফোন অ্যাপ্লিকেশন লিখতে পারি )

এখানে আমার লক্ষ্য একটি পাইওবিজেসি অ্যাপ্লিকেশন লেখার নয়, একটি নিয়মিত ওজেসিসি অ্যাপ্লিকেশন লিখতে যা পাইথনকে এমবেডেড লাইব্রেরি হিসাবে চালায়। পাইথন কোডটি আবার দেশীয় কোকো কোডে কল করবে। এটি "নিয়ন্ত্রণ যুক্তিটি পাইথন কোড" প্যাটার্ন।

এক্সকোডে পাইথন তৈরি করার জন্য কি কোনও গাইড রয়েছে, যাতে আমার আইফোন অ্যাপটি এটি লিঙ্ক করতে পারে? সাধারণত স্ট্রিপ-ডাউন পাইথন, যেহেতু আমার স্ট্যান্ডার্ড লাইব্রেরির 90% প্রয়োজন হবে না।

আমি সম্ভবত থ্রেডিং এবং পাইথন-এক্সটেনশন এপিআই বের করতে পারি; আমি ম্যাকোস-এ এটি করেছি। তবে কেবল এক্সকোড নয়, কমান্ড-লাইন সংকলক ব্যবহার করছেন।


উত্তর:


30

আপনি কীভাবে পাইথন তৈরি করেন তাতে আসলেই কিছু যায় আসে না - উদাহরণস্বরূপ আপনার এক্সকোডে এটি তৈরি করার দরকার নেই - তবে কী গুরুত্বপূর্ণ তা সেই বিল্ডের পণ্য।

যথা, আপনার কাছে libPython.a এর মতো কিছু তৈরি করতে হবে যা আপনার আবেদনের সাথে স্থিতিশীলভাবে সংযুক্ত করা যেতে পারে। আপনার একবার .a হয়ে গেলে, এটি আপনার অ্যাপ্লিকেশন (গুলি) এর জন্য এক্সকোড প্রকল্পে যুক্ত করা যেতে পারে এবং সেখান থেকে, এটি আপনার বাকী অ্যাপ্লিকেশনের মতোই সংযুক্ত এবং স্বাক্ষরিত হবে।

আইআইআরসি (আমি অজগরটি হাতে হাতে তৈরি করার পরে কিছুদিন হয়ে গেছে) বাক্সের বাইরে পাইথন একটি লাইব পাইথন.এ (এবং অন্যান্য গ্রন্থাগারগুলির একগুচ্ছ) তৈরি করবে, যদি আপনি এটি সঠিকভাবে কনফিগার করেন।

অবশ্যই, আপনার দ্বিতীয় সংখ্যাটি আপনার 86 বাক্স থেকে এআরএমের জন্য ক্রস-সংকলন অজগর হতে চলেছে । পাইথন একটি অটোকনফ ভিত্তিক প্রকল্প এবং অটোকনফ ক্রস সংকলনের জন্য বাটে ব্যথা।

আপনি যেমন সঠিকভাবে বলেছেন, এটি ছোট করা সমালোচনা করবে will

অবাক হওয়ার মতো কিছু নয়, এটি হ'ল আপনি এটি করতে চান এমন প্রথম ব্যক্তি নন, তবে আইওএসের পক্ষে নয়। পাইথন ডিভাইসগুলিতে সঙ্কুচিত হয়েছে যা আইওএস চালায় তাদের তুলনায় অনেক কম সক্ষম। গুগল করার সময় আমি একগুচ্ছ লিঙ্কগুলির একটি থ্রেড পেয়েছি; এটি দরকারী হতে পারে

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


লিঙ্কগুলির জন্য ধন্যবাদ। (আমি একটি জন্য আকস্মাত্ Zaurus উপর পাইথন ব্যবহৃত অনেক এই প্রকল্পের পূর্ববর্তী সংস্করণ, কিন্তু যে পাইথন 1.6 ছিলেন এবং অন্য কারো প্যাকেজিং ... করেনি)
অ্যান্ড্রু Plotkin

4
আমি একবার পাইথনকে সোনির পিএসপিতে পোর্ট করেছিলাম; সম্ভবত সাবভার্সন ইতিহাসের কিছু আপনাকে সহায়তা করবে। যদিও ঠিক উত্তর নেই। এখানে: পাইথন- pps.net/trac
fraca7

22

আমি গিথুবে একটি খুব রুক্ষ স্ক্রিপ্ট রেখেছি যা আইফোন এবং সিমুলেটারের জন্য পাইথন 2.6.5 এনে দেয় এবং তৈরি করে।

http://github.com/cobbal/python-for- আইফোন

কাজ চলছে

কিছুটা হতাশাজনক আপডেট প্রায় 2 বছর পরে:

এই প্রকল্পটি সত্যই আমার সন্তুষ্টির জন্য আইফোনটিতে অজগরটি কখনও পায়নি এবং আমি এই পর্যায়ে কোনও গুরুতর প্রকল্পের জন্য এটি ব্যবহারের পরামর্শ দিতে পারি না।

সর্বাধিক উল্লেখযোগ্যভাবে অনুপস্থিত হ'ল পাইবজেসি সমর্থন (এটি আইফোনটির কাছে পোর্ট করা আরও শক্ত হয়ে গেছে কারণ এটি আরও প্ল্যাটফর্ম-নির্দিষ্ট কোডের উপর নির্ভর করে)

এছাড়াও অনুপস্থিত হ'ল স্থিতিশীলভাবে মডিউলগুলি সংকলন করার ক্ষমতা, (সমস্ত বর্তমানে বিকাশের জন্য কাজ করে এমন ডাইলিব হিসাবে নির্মিত, তবে অ্যাপ স্টোরটিতে আমার জ্ঞানের অনুমতি দেওয়া হবে না)

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

আমি সত্যই কামনা করি পাইথনে পুরোপুরি অ্যাপ্লিকেশন লেখার জন্য ব্যবহারিক হওয়া উচিত তবে এই মুহুর্তে এটি অসম্ভব বলে মনে হয়।


ধন্যবাদ! আমি কিছু দিন এটি দেখার সুযোগ পাব না, তবে আমি খুব শীঘ্রই এটি চেষ্টা করব।
অ্যান্ড্রু প্লটকিন

যদি pyobjcসংকলন করা শক্ত হয় তবে এটি ব্যবহার করা ctypesকি সম্ভব ? যে ক্ষেত্রে এই উত্তর একটি সুরুক হতে পারে (নিরূপক এটি শুধু একটি বড় এবং যন্ত্রণাদায়ক কাজ শুরুর হতে চাই, কিন্তু এখনও)।
জ্যাকব অস্কারসন

10

আমিও এরকম একটি প্রকল্প শুরু করেছি। এটি তার নিজস্ব সরলিকৃত সংকলিত স্ক্রিপ্ট সহ আসে যাতে আপনার ক্রস সংকলিত স্থির লাইব্রেরি পেতে অটোকনফের সাথে চারপাশে গোলযোগের প্রয়োজন হয় না। এটি কিছু সাধারণ মডিউল সহ পাইথনের সম্পূর্ণ নির্ভরতা-মুক্ত স্ট্যাটিক লাইব্রেরি তৈরি করতে সক্ষম। এটি সহজেই বর্ধমান হওয়া উচিত।

https://github.com/albertz/python-e এমবেড /


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

আমি সমস্ত নেটিভ সি মডিউল অন্তর্ভুক্ত করিনি। শুধু এটি পরিবর্তন করুন।
আলবার্ট

তারিখ দেখে মনে হচ্ছে ... কেবল আইওএসের সাথে কাজ করে 4.3? আপনি কীভাবে এটি আরও বর্তমান সংস্করণে কাজ করতে পারেন তা নথিভুক্ত করতে পারেন?
আর্টঅফ ওয়ারফেয়ার

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