কীভাবে অন্য মেশিনে পাইথন কাজের পরিবেশ ক্লোন করবেন?


26

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

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

সুতরাং, আমার প্রশ্নটি এমন একটি পরিবেশ দেওয়া যেখানে একটি নির্দিষ্ট প্রোগ্রাম ভালভাবে চলে, আমি কীভাবে এটির অন্য কোনও ক্লোন করতে পারি যেখানে এটিও ভালভাবে চালানো উচিত? অবশ্যই, সম্পূর্ণ সিস্টেমের ক্লোনিং ছাড়াই;)


কনডা এনভেট এক্সপোর্ট ব্যবহার করুন।
kbrose

উত্তর:


39

এর প্রথমটি হল পাইথন / অ্যানাকোন্ডা প্রশ্ন এবং সম্ভবত অন্য একটি স্ট্যাক এক্সচেঞ্জ সাবসাইটে জিজ্ঞাসা করা উচিত।


নিজেই প্রশ্নটি হিসাবে - আপনি আপনার এ্যানাকোন্ডা পরিবেশটি ব্যবহার করে রফতানি করতে পারেন:

conda env export > environment.yml

এবং এটি ব্যবহার করে পুনরায় তৈরি করুন:

conda env create -f environment.yml

দয়া করে নোট করুন যে অন্যরা যেমন পরামর্শ দিয়েছিল - আপনার ভার্চুয়াল পরিবেশ ব্যবহার করা উচিত যা আপনাকে এমন একটি নির্দিষ্ট পরিবেশ তৈরি করতে দেয় যা আপনার মেশিনের চেয়ে আলাদা হয়ে যায় এবং আরও সহজেই পরিচালনা করে।

অ্যানাকোন্ডায় ভার্চুয়াল পরিবেশ তৈরি করতে আপনি এটি ব্যবহার করতে পারেন:

conda create -n yourenvname python=x.x anaconda

যা আপনি ব্যবহার করে সক্রিয়:

source activate yourenvname

অ্যানাকোন্ডা ডকুমেন্টেশন ব্যবহার করার জন্য conda createবা conda env createপরিবেশ ভাগ করে নেওয়ার / পুনরুদ্ধার করার সময় খুব পরিষ্কার নয় । আপনি আরও বিশদে দয়া করে বলতে পারেন আপনি কেন conda env createএই পরিস্থিতিতে ব্যবহারের পরামর্শ দিচ্ছেন ?
টাঙ্গুয়

এখানে conda createএবং এর মধ্যে পার্থক্য সম্পর্কে আপনি কিছু নোটগুলি খুঁজে পেতে পারেন conda env create: groups.google.com/a/continuum.io/forum/#!topic/conda/… এই বলেছিল, আমি মনে করি আপনি সাধারণত এগুলি বিনিময়যোগ্য হিসাবে ব্যবহার করতে পারেন।
জিঞ্জ

1
আমি এই থ্রেডটি দেখেছি, তবে প্রতিটি বিকল্প ( conda createবনাম conda env create) কে কোন পরিস্থিতিতে অগ্রাধিকার দেওয়া উচিত এবং প্রতিটিটির ডাউনসাইডগুলি কী (উদাহরণস্বরূপ: "[ conda env createহল]] পরিবেশে যেখানে পাইপ ব্যবহার করে প্যাকেজগুলি ইনস্টল করা হয়েছে তা সঠিকভাবে বুঝতে চেষ্টা করছি thread , যা অতিরিক্ত জটিলতা সৃষ্টি করে ": এটি কী ধরনের অতিরিক্ত জটিলতা যুক্ত করে?)।
টাঙ্গুয়

আমি জিজ্ঞাসা করতে চাই যে চলমান অবস্থায় conda env create -f environment.yml, এটি ত্রুটি ঘটায় কারণ yML ফাইলটিতে ভার্টেনভের নাম ইতিমধ্যে ব্যবহৃত হয়েছে। কাটিয়ে উঠতে নামটি আপনার নতুন ভার্টেঞ্জে পরিবর্তন করুন।
জিয়াং নগুইন

এইভাবে আপনার জীবন বাঁচায়! আপনি যদি এনাকোন্ডা ম্যানেজিং এনভায়রনমেন্ট পৃষ্ঠাগুলির নির্দেশের উপর ভিত্তি করে কোনও ফাইল থেকে পরিবেশ তৈরি করেন, আপনি অন্য প্ল্যাটফর্ম ব্যবহার করেন না তাহলে কাজ করে না। conda list --explicit > FILE_NAMEবর্তমান প্ল্যাটফর্মের জন্য বাইনারি রফতানি করে এবং দৃশ্যত অন্য একটিতে কাজ করছে না।
শায়ান আমানী

5

ভার্চুয়ালাইজেশনের জন্য আরও হালকা ওজনের বিকল্প হিসাবে 'পাত্রে' দেখুন, যেমন ডকার ( https://www.docker.com/hat-container )।

এটি কিছুটা সময় বিনিয়োগের প্রয়োজন তবে শেষ পর্যন্ত অনেক সুবিধা প্রদান করবে benefits

লিঙ্কটি থেকে, যেখানে আমি আপনার নির্দিষ্ট প্রয়োজনটিকে বোল্ড ইটালিক হিসাবে চিহ্নিত করেছি :

বিকাশ, চালান এবং স্থাপনার জন্য মানকযুক্ত ইউনিটে প্যাকেজ সফ্টওয়্যার

একটি ধারক চিত্রটি একটি হালকা ওজনের, একা থাকা, চালিত প্যাকেজ যা সফটওয়্যারটির একটি অংশ যা চালানোর জন্য প্রয়োজনীয় সমস্ত কিছু অন্তর্ভুক্ত করে: কোড, রানটাইম, সিস্টেম সরঞ্জাম, সিস্টেম লাইব্রেরি, সেটিংস। লিনাক্স এবং উইন্ডোজ ভিত্তিক অ্যাপ্লিকেশন উভয়ের জন্য উপলব্ধ , পরিবেশযুক্ত নির্বিশেষে ধারকযুক্ত সফ্টওয়্যার সর্বদা একই চলবে । ধারকরা তার চারপাশ থেকে সফ্টওয়্যার বিচ্ছিন্ন করে, উদাহরণস্বরূপ উন্নয়ন এবং মঞ্চ পরিবেশের মধ্যে পার্থক্য এবং একই অবকাঠামোতে বিভিন্ন সফ্টওয়্যার চালিত দলগুলির মধ্যে দ্বন্দ্ব হ্রাস করতে সহায়তা করে।


5

আপনার বর্তমান কনডা পরিবেশের প্রথম রফতান পরিবেশ কনফিগারেশন ব্যবহার করে:

conda-env  export -n your_env_name > your_env_name.yml

উদাহরণ:

conda-env  export -n base> base.yml

উপরের কমান্ডটি চালানোর পরে সেগুলি আপনার বর্তমান ডিরেক্টরিতে yML কনফিগারেশন ফাইল হওয়া উচিত যা আপনার কনডা পরিবেশের তথ্য ধারণ করে

YML কনফিগারেশন ফাইল রান ব্যবহার করে নতুন পরিবেশ তৈরি করতে:

conda-env create -n new_env -f=\path\to\base.yml 

উদাহরণ:

conda-env create -n venv -f=base.yml

উপরোক্তটি যদি কাজ না করে (কনডা নিজেই বিভিন্ন সমস্যার কারণে), নিম্নলিখিত তফাতটি সহ সর্বদা চেষ্টা করার মতো:

conda-env create --name new_env --file \path\to\base.yml 

4

যদি আপনার প্রোগ্রামটি বেশিরভাগ পাইথন হয় তবে আপনি কেবল ভার্চুয়াল পরিবেশের উপর নির্ভর করতে পারেন।

সিস্টেম লাইব্রেরি ব্যবহার না করে আপনার নির্ভরতা বিচ্ছিন্ন করার জন্য ভার্চুয়াল পরিবেশ তৈরি করুন। তারপরে আপনার পরিবেশগুলির সদৃশ করতে ভার্চুয়াল পরিবেশ সরঞ্জামগুলি ব্যবহার করুন।

কাজের ভার্চুয়ালেনভে প্রতিটি ইনস্টলড পাইথন লাইব্রেরির সংস্করণ সহ একটি ফাইল তৈরি করুন:

pip freeze > requirements.txt

নতুন ভার্চুয়ালেনভে, pipএকই সংস্করণ সহ libra গ্রন্থাগারগুলি ইনস্টল করতে বলুন :

pip install -r requirements.txt

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

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


আমি anacondaআপনার প্রশ্নের ট্যাগ খেয়াল করিনি । আমি এটির সাথে অভিজ্ঞ নই, তবে সাবধানতা অবলম্বন করুন। আমি মনে করি এনাকোন্ডার পরিবেশের জন্য মঙ্গিত করার এবং উভয় অ্যানাকোন্ডা ব্যবহারের নিজস্ব পদ্ধতি রয়েছে এবং virtualenvআপনাকে সমস্যার মধ্যে ফেলতে পারে। তবে, আমি মনে করি অ্যানাকোন্ডার সমতুল্য বৈশিষ্ট্যগুলি সরবরাহ করা উচিত।
Jérôme

1

এই ডকুমেন্টেশন পৃষ্ঠার একেবারে শেষ থেকে :

ভবিষ্যতে ব্যবহারের জন্য প্যাকেজগুলি সংরক্ষণ করুন:

conda list --export > package-list.txt

একটি রফতানি ফাইল থেকে প্যাকেজগুলি পুনরায় ইনস্টল করুন:

conda create -n myenv --file package-list.txt

1

অন্যটির উপর ভিত্তি করে পরিবেশ তৈরির বিদ্যমান উপায়গুলির একটি মোড়ক:

  • পরিবেশ ক্লোনিং :

    • একটি বিদ্যমান পরিবেশ থেকে:

      $ conda create --name ORIG_ENV_NAME --clone CLONE_ENV_NAME

    • একই মেশিনে রফতানি করা পরিবেশ ফাইল থেকে:

      $ conda create --name ENV_NAME —-file FILE_NAME.yml

    • ভিন্ন মেশিনে রফতানি করা পরিবেশ ফাইল থেকে:
      $ conda env export > ENV_NAME.yml
      $ conda env create -f ENV_NAME.yml```

$ conda create --name NEW_ENV_NAME --clone ORIG_ENV_NAME
বি। সান

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