1. Python এবং একটি লাইসেন্সযুক্ত বৈশিষ্ট্য প্রস্তুত করুন৷
বাণিজ্যিক Python কমান্ড-লাইন বা ডেস্কটপ অ্যাপে গ্রাহকের লাইসেন্স কী যোগ করুন এবং সুরক্ষিত ফিচার চালানোর আগে অনুমতি যাচাই করুন। এসব পরীক্ষা আপনার অ্যাপের অ্যাক্সেস নিয়ন্ত্রণ করে; Python ইন্টারপ্রেটারের ওপেন-সোর্স লাইসেন্স পরিবর্তন করে না। অ্যাপ সক্রিয়করণের ইনপুট নেয় এবং কাজটি সম্পাদনের কলব্যাক সরবরাহ করে।
ডিভাইস কোটা বর্তমান সক্রিয়করণ অনুযায়ী গণনা হয় এবং মুক্ত করলে ফেরত আসে। সাধারণ লাইসেন্স অফলাইনেও গণনা হয়; ফ্লোটিং লাইসেন্সের লিজ শেষ হলেও কোটা স্বয়ংক্রিয়ভাবে ফেরত আসে।
- কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; YOUR_PRODUCT_ID, YOUR_KEY_ID এবং YOUR_PUBLIC_KEY বদলান। দ্রুত ইন্টিগ্রেশন থেকেও এই কোড পাওয়া যায়। পণ্যের কনফিগারেশন ফাইল লাগে না; SDK ডিফল্টভাবে https://www.licentivo.com ব্যবহার করে।
- Python 3.10 বা পরবর্তী ইনস্টল করুন এবং একটি প্রকল্প ডিরেক্টরি তৈরি করুন।
- Licentivo কুইক ইন্টিগ্রেশনে, এর নীতি এবং লাইসেন্স দ্বারা অনুমোদিত একটি মিটারবিহীন রপ্তানি বৈশিষ্ট্য সহ একটি পণ্য তৈরি বা নির্বাচন করুন।
2. ভার্চুয়াল পরিবেশে ইনস্টল করুন
আপনার অ্যাপ প্রকল্পে নিচের কমান্ড চালিয়ে বা বিল্ড ডিপেন্ডেন্সি যোগ করে SDK 0.11.6 ইনস্টল করুন। প্যাকেজ ম্যানেজার SDK সংগ্রহ করে; সোর্স ZIP ডাউনলোড ও এক্সট্র্যাক্ট করা বা স্থানীয় পাথ সেট করার প্রয়োজন নেই।
python -m venv .venv
./.venv/Scripts/python.exe -m pip install "licentivo-sdk==0.11.6"python3 -m venv .venv
./.venv/bin/python -m pip install "licentivo-sdk==0.11.6"3. রপ্তানি করার আগে লাইসেন্স যাচাই করুন
অ্যাপ চালু বা সক্রিয় করার সময় SDK শুরু করুন। সক্রিয়করণ ফর্ম থেকে গ্রাহকের কী পড়ে পণ্যের ID ও বিশ্বস্ত কী দিন। অ্যাপ বন্ধ হওয়া পর্যন্ত ক্লায়েন্ট রাখুন। আসল কাজের প্রবেশপথে run_feature ব্যবহার করে উদাহরণের এক্সপোর্টের বদলে নিজের ফাংশন দিন।
"""A protected operation to move into your own application's business handler."""
import os
import sys
from pathlib import Path
from licentivo import Client
# BEGIN LICENTIVO PRODUCT
# Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
PRODUCT_ID = 'YOUR_PRODUCT_ID'
TRUSTED_KEYS = {'YOUR_KEY_ID': 'YOUR_PUBLIC_KEY'}
# END LICENTIVO PRODUCT
def export_report(path):
# Replace this write with your existing, non-metered export operation.
Path(path).write_text('A report generated by the licensed application.\n', encoding='utf-8')
def main():
# In a GUI, read the activation input; later starts pass an empty key.
with Client.open_product(
PRODUCT_ID, TRUSTED_KEYS,
os.getenv('LICENTIVO_LICENSE_KEY', ''),
on_error=lambda error: print(f'Background verification: {error}', file=sys.stderr),
) as client:
feature = os.getenv('LICENTIVO_FEATURE', 'export')
path = os.getenv('LICENTIVO_OUTPUT', 'licensed-report.txt')
action = lambda: export_report(path)
if os.getenv('LICENTIVO_METERED') == '1':
client.run_metered_feature(feature, 1, os.getenv('LICENTIVO_OPERATION_ID', ''), action)
else:
client.run_feature(feature, action)
print(f'License OK: {feature} is available\nExport completed: {path}')
# Keep this context open until your real app exits. No Deactivate on normal exit.
if __name__ == '__main__':
try:
main()
except Exception as error:
print(str(error), file=sys.stderr)
sys.exit(2)
$env:LICENTIVO_LICENSE_KEY = 'YOUR_TEST_LICENSE_KEY'
./.venv/Scripts/python.exe app.py
# On later starts, restore the saved device credential:
Remove-Item Env:LICENTIVO_LICENSE_KEY
./.venv/Scripts/python.exe app.pyexport LICENTIVO_LICENSE_KEY='YOUR_TEST_LICENSE_KEY'
./.venv/bin/python app.py
# On later starts, restore the saved device credential:
unset LICENTIVO_LICENSE_KEY
./.venv/bin/python app.py4. একটি ডেস্কটপ অ্যাপ্লিকেশনে ক্লায়েন্টকে জীবিত রাখুন
একটি কমান্ড-লাইন রপ্তানির জন্য, উইথ ব্লক পুরো অপারেশনটি কভার করতে পারে। একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য, সক্রিয়করণের সময় ক্লায়েন্ট খুলুন এবং উইন্ডোটি বন্ধ না হওয়া পর্যন্ত এটি রাখুন; প্রতিটি বোতাম ক্লিকের জন্য একটি ক্লায়েন্ট তৈরি এবং বন্ধ করবেন না।
অনলাইন সক্রিয়করণ ও অন্যান্য নেটওয়ার্কের কাজ GUI থ্রেডের বাইরে চালান, তারপর ফলাফল আপডেট করতে UI থ্রেডে ফেরত পাঠান। Tkinter ডেস্কটপ উদাহরণটি নিচের ডকুমেন্টেশন লিংকে আলাদাভাবে দেওয়া আছে; pip প্যাকেজ ইনস্টল করলে উদাহরণটির সোর্স কোড ইনস্টল হয় না।
প্রতিটি এক্সপোর্ট বোতাম, শর্টকাট বা কমান্ড অবশ্যই client.run_feature("export", lambda: export_report(path)) আহ্বান করতে হবে। শাটডাউন কল বন্ধ হলে; এটি একটি ডিভাইস-বাউন্ড রেজিস্ট্রেশন ধরে রাখে এবং একটি ভাসমান আসন ফেরত দেওয়ার চেষ্টা করে।
পরে সংরক্ষিত ডিভাইস শংসাপত্র পুনরুদ্ধার করতে একই পণ্য, ব্যবহারকারী এবং ক্যাশ পাথ সহ একটি খালি লাইসেন্স কী পাস করা শুরু করে। অফলাইন স্টার্টআপ এখনও একটি বৈধ স্বাক্ষরিত অনুদান এবং লাইসেন্স নীতির উপর নির্ভর করে; ভাসমান এবং শুধুমাত্র অনলাইন স্টার্টআপ সার্ভার নিশ্চিতকরণ প্রয়োজন।
5. অনুমোদিত এবং অস্বীকৃত পাথ যাচাই করুন
- আপনার পরীক্ষার কী ব্যবহার করে সক্রিয় করুন এবং ফলাফল রিপোর্ট পরিদর্শন করুন।
- LICENTIVO_LICENSE_KEY আনসেট করুন এবং একই ভার্চুয়াল পরিবেশ এবং অপারেটিং-সিস্টেম ব্যবহারকারীর সাথে পুনরায় চালু করুন। সংরক্ষিত ডিভাইস শংসাপত্র পুনরুদ্ধার নিশ্চিত করুন.
- লাইসেন্স থেকে অনুপস্থিত একটি বৈশিষ্ট্যে LICENTIVO_FEATURE সেট করুন এবং একটি নতুন ফাইলের নাম LICENTIVO_OUTPUT সেট করুন৷ একটি অশূন্য প্রস্থান কোড আশা করুন এবং কোন নতুন রপ্তানি নেই।
- আপনি যদি মিটারিং সক্ষম করেন, প্রথমে ব্যবহারের নিয়মটি কনফিগার করুন, LICENTIVO_METERED=1 সেট করুন এবং টেকসই ব্যবসায়িক কাজের জন্য LICENTIVO_OPERATION_ID প্রদান করুন৷ একবার সফল কাজ তার পাল্টা decrements যাচাই করুন.
একটি মাসিক ব্যবহারের কাউন্টার সহ সফ্টওয়্যার রপ্তানি সীমিত করুন
ইনস্টলেশন এবং অনুমোদনের সমস্যা সমাধান করুন
পণ্যের ID, প্রতিটি কী ID/পাবলিক কী জোড়া এবং গ্রাহকের লাইসেন্স যাচাই করুন। পাবলিক কী পণ্যের; লাইসেন্স ও ডিভাইস পরিচয়পত্র আলাদা। পরীক্ষার কী বা ব্যবস্থাপনার API Key বিতরণ করবেন না।
ModuleNotFoundError মানে সাধারণত পিপ এবং অ্যাপটি বিভিন্ন Python ইন্টারপ্রেটার ব্যবহার করছে। উভয় কমান্ডের জন্য একই ভার্চুয়াল পরিবেশ ব্যবহার করুন।
একটি মেয়াদ উত্তীর্ণ লাইসেন্স বা অস্বীকৃত বৈশিষ্ট্য অপারেশন বন্ধ করতে হবে. SDK ত্রুটি প্রদর্শন করুন এবং যখন উপলব্ধ আইডি অনুরোধ করুন; ব্যর্থ চেকের পরে এক্সপোর্ট কলব্যাক চালাবেন না।
মিটারযুক্ত অপারেশনগুলির জন্য নেটওয়ার্ক অ্যাক্সেসের প্রয়োজন হয়। একটি স্থিতিশীল টাস্ক আইডি এবং টেকসই ফলাফল রাখুন যাতে মুলতুবি নিশ্চিতকরণ কাজ পুনরাবৃত্তি না করে পুনরুদ্ধার করতে পারে। ক্যাশ করা অনুদান, ডিভাইসের শংসাপত্র, পরীক্ষা কী বা বিক্রেতা ব্যবস্থাপনা কী বিতরণ করবেন না।