অ্যানাকোন্ডা পরিবেশ ফাইলটি রফতানি করে


129

অন্যান্য কম্পিউটারে ব্যবহারযোগ্য হতে পারে এমন কীভাবে আমি অ্যানাকোন্ডা পরিবেশ ফাইল তৈরি করতে পারি?

আমি আমার অ্যানাকোন্ডা অজগর পরিবেশটি ওয়াইএমএল ব্যবহার করে রফতানি করেছি conda env export > environment.yml। রফতানীতে environment.ymlএই লাইনটি রয়েছে prefix: /home/superdev/miniconda3/envs/juicyenvযা আমার অ্যানাকোন্ডার অবস্থানটিতে মানচিত্র করে যা অন্যের পিসিতে আলাদা হবে।


7
আমি কেবল কিছু পরীক্ষা করছিলাম, এবং আমি ভেবেছিলাম যে উপসর্গটি উপেক্ষা করা হয়েছে ... নিশ্চিত নয় কেন এটি এনভির এক্সপোর্টে রয়েছে। আপনি conda env create -f environment.yml যেমন একপাশে যেমন করতে সক্ষম হবেন তবে আমার অভিজ্ঞতায় এটি প্ল্যাটফর্মগুলি জুড়ে কাজ করে না, কারণ কনডা এনভি আপনি উইন্ডোজটিতে থাকলে depend vs2015_runtime` এর মতো অনেক নির্ভরতা তালিকাভুক্ত করে। তবে অবশ্যই এটি লিনাক্সে পাওয়া যায় না।
অ্যালেক্স জি রাইস

4
কনডা আসলে environment.ymlফাইলটি হাতে হাতে তৈরি করার পরামর্শ দিয়েছিল , তাই আপনি এটিকে ছেড়ে দিতে পারেন - দেখুন স্ট্যাকওভারফ্লো // প্রশ্নগুলি
ব্রায়ান বার্নস

উত্তর:


177

আমি condaচশমাগুলিতে এমন কিছু খুঁজে পাচ্ছি না যা আপনাকে prefix: ...লাইন ছাড়াই কোনও পরিবেশ ফাইল রফতানি করার অনুমতি দেয় । যাইহোক, অ্যালেক্স মন্তব্যগুলিতে উল্লেখ করেছেন , ফাইল থেকে পরিবেশ তৈরি করার সময় কনডা প্রিফিক্স লাইনটি যত্ন করে বলে মনে হচ্ছে না।

এটি মনে রেখে, আপনি যদি অন্য ব্যবহারকারীকে আপনার ডিফল্ট ইনস্টল করার পথ সম্পর্কে কোনও জ্ঞান না রাখতে চান তবে আপনি grepলেখার আগে উপসর্গের লাইনটি সরিয়ে ফেলতে পারেন environment.yml

conda env export | grep -v "^prefix: " > environment.yml

যে কোনও উপায়ে, অন্য ব্যবহারকারী তখন চালায়:

conda env create -f environment.yml

এবং পরিবেশটি তাদের ডিফল্ট কনডা পরিবেশের পথে ইনস্টল হবে।

যদি আপনি আপনার সিস্টেমের জন্য ডিফল্টর চেয়ে আলাদা ইনস্টলনের পাথ নির্দিষ্ট করতে চান (এনভায়রনমেন্ট.আইএমএলে 'উপসর্গের সাথে সম্পর্কিত নয়), কেবল -pপ্রয়োজনীয় পথটি অনুসরণ করে পতাকাটি ব্যবহার করুন ।

conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name

নোট করুন যে কন্ডা environment.ymlহাত দিয়ে তৈরি করার পরামর্শ দিচ্ছে , বিশেষত যদি আপনি আপনার প্ল্যাটফর্মগুলি (উইন্ডোজ / লিনাক্স / ম্যাক) জুড়ে আপনার পরিবেশটি ভাগ করতে চান তবে তা গুরুত্বপূর্ণ। এই ক্ষেত্রে, আপনি কেবল prefixলাইনটি ছেড়ে দিতে পারেন ।


1
... eggcellent! 👍
আহি টুনা

44

অন্য কম্পিউটারে ইনস্টল করার জন্য পরিবেশ থেকে প্যাকেজগুলি সংরক্ষণের সবচেয়ে সহজ উপায় হ'ল:

$ conda list -e > req.txt

তারপরে আপনি পরিবেশটি ব্যবহার করে ইনস্টল করতে পারেন

$ conda create -n new environment --file req.txt

আপনি যদি pipব্যবহার করেন তবে দয়া করে নীচের কমান্ডগুলি ব্যবহার করুন: রেফারেন্স https://pip.pypa.io/en/stable/references/pip_freeze/

$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt

দুর্দান্ত, তবে এটি পাইপ ইনস্টল হওয়া প্যাকেজগুলির সাথে কাজ করছে বলে মনে হয় না।
লিটল ববি টেবিল

1
ধন্যবাদ আমি প্রদত্ত রেফারেন্সের ভিত্তিতে সবেমাত্র আপডেট করেছি
জাভাক

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

আমি মনে করি অ্যানাকোন্ডা পরিবেশে কনডা কমান্ডটি ব্যবহার করা ভাল, এটি প্রয়োজন হলে আপনি পিপও ব্যবহার করতে পারেন
জাভাক

9
  • লিনাক্স

    কনডা এনভেট এক্সপোর্ট - নো বিল্ডস | grep -v "উপসর্গ"> পরিবেশ.আইএমএল

  • উইন্ডোজ

    কনডা এনভেট এক্সপোর্ট - নো বিল্ডস | findstr -v "উপসর্গ"> পরিবেশ.আইএমএল


যুক্তি: ডিফল্ট হিসাবে, conda env exportবিল্ড তথ্য অন্তর্ভুক্ত:

$ conda env export
...
dependencies:
  - backcall=0.1.0=py37_0
  - blas=1.0=mkl
  - boto=2.49.0=py_0
...

পরিবর্তে আপনি বিল্ড তথ্য ছাড়াই আপনার পরিবেশ রফতানি করতে পারেন:

$ conda env export --no-builds
...
dependencies:
  - backcall=0.1.0
  - blas=1.0
  - boto=2.49.0
...

যা পাইথন সংস্করণ এবং ওএস থেকে পরিবেশকে একত্রিত করে।


1
আমি সম্মতি দিচ্ছি যে এটি একটি ভাল উত্তর, তবে বিল্ড তথ্য বাদ দিয়ে প্ল্যাটফর্মগুলির মধ্যে এনভির স্থানান্তরিত করার জন্য কেন কার্যকর তা সম্পর্কে কিছু বিশদ যুক্ত করার বিষয়ে বিবেচনা করুন।
মার্ভ

এটি ব্যবহার করে শেষ হয়েছে তবে দুর্দান্ত ধারণা @merv। ঠিক তাই করেছে।
ফ্রান্সোইস লেব্ল্যাঙ্ক

দুর্ভাগ্যক্রমে, বিভিন্ন ওএসে রফতানি করা এবং পুনরায় ইনস্টল করার সময় এটি সর্বদা কার্যকর হবে না।
সেরেন

2

আমি প্যাকেজগুলি কেবল স্ট্রিং ফর্ম্যাটে রফতানি করা পুরো condaপরিবেশ রফতানির চেয়ে বেশি পোর্টেবল । আগের উত্তর হিসাবে ইতিমধ্যে প্রস্তাবিত:

$ conda list -e > requirements.txt

তবে requirements.txtএটিতে বিল্ড নম্বর রয়েছে যা অপারেটিং সিস্টেমের মধ্যে বহনযোগ্য নয়, যেমন Macএবং এর মধ্যে Ubuntu। ইন conda env exportআমরা বিকল্প আছে --no-buildsকিন্তু সঙ্গে conda list -eতাই আমরা নিম্নলিখিত কমান্ডের বিল্ড সংখ্যা অপসারণ করতে পারেন:

$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt 

এবং অন্য কম্পিউটারে পরিবেশটি পুনরায় তৈরি করুন:

conda create -n recreated_env --file requirements.txt 

sedকমান্ড বেশ সুন্দর কাজ করেছে। আমাকে একটি প্যাচ সংস্করণ মুছতে হয়েছিল। সুতরাং major.minor.patchকরতে major.minorএবং এটা কাজ করে। দেখা যাচ্ছে, নীচের প্যাচ নম্বরটি মূল রেপোস দ্বারা ফেলে দেওয়া হয়েছিল।
লুকাস

1
  1. প্রথমে আপনার কনডা পরিবেশ সক্রিয় করুন (আপনি যেটিকে এক্সপোর্ট / ব্যাকআপ করতে চান)
conda activate myEnv
  1. সমস্ত প্যাকেজ কোনও ফাইলে রফতানি করুন (myEnvBkp.txt)
conda list --explicit > myEnvBkp.txt
  1. পরিবেশ পুনরুদ্ধার / আমদানি করুন:
conda create --name myEnvRestored --file myEnvBkp.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.