আমি কীভাবে একটি অ্যানাকোন্ডা (কন্ডা) পরিবেশে পাইপ-ইনস্টল করা প্যাকেজগুলির ট্র্যাক রাখতে পারি?


141

আমি অ্যানাকোন্ডা পাইথন বিতরণ ইনস্টল করেছি এবং ব্যবহার করেছি এবং আমি অ্যানাকোন্ডা (কন্ডা) পরিবেশ ব্যবহার শুরু করেছি। আমি conda install...আমার পরিবেশে বিতরণ থেকে প্যাকেজগুলি রাখার জন্য স্ট্যান্ডার্ড কমান্ডটি ব্যবহার করতে পারি, তবে সক্রিয় পরিবেশে আমার বাইরে থাকা কিছু (যেমন ফ্লাস্ক-ডাব্লুটিএফ, ফ্লাস্ক-স্ক্ল্যাচেমি, এবং আলেম্বিক) ব্যবহার করতে হবে pip install। যাইহোক, আমি যখন পরিবেশের বিষয়বস্তুগুলি দেখি, ডিরেক্টরিতে হয় বা conda listএই pip installএড প্যাকেজগুলি ব্যবহার করে তা প্রদর্শিত হয় না।

আমি ইনস্টল করা প্রতিটি প্যাকেজটি ব্যবহার pip freezeএবং pip listকেবলমাত্র তালিকাভুক্ত করে।

সেখানে কি আমার Anaconda- র প্রতিটি হয় ট্র্যাক রাখতে একটি উপায় আছে কি envগুলি (উভয় pipএবং condaইনস্টল করা আছে)?


7
যেমন pipইনস্টল করুন ব্যবহার করুন । একটি মধ্যে প্যাকেজগুলি ইনস্টল করতে এটি ব্যবহার করুন পরিবেশ, সেইসাথে এই সঙ্গে ইনস্টল করা প্যাকেজ ইউনিয়ন দেখতে এবং । conda~/anaconda/bin/pipcondapipconda install
osa

7
conda listকিছু সময়ের জন্য রয়েছে অজগর প্যাকেজগুলি যা অন্য উপায়ে ইনস্টল করা হয়েছিল (যেমন পিপ, ইজি ইনস্টল, সরাসরি এর মাধ্যমে python setup.py installইত্যাদি ইত্যাদি)
কালেফ্রান্স

1
আপনার পাইপটি আপগ্রেড করবেন না বা এই রফতানিটি হোজে উঠবে
অ্যান্ড্রু ক্যাসিডি

উত্তর:


120

কনডা-এনভিভ এখন এটি স্বয়ংক্রিয়ভাবে করে (যদি কন্ডার সাথে পিপ ইনস্টল করা থাকে)।

পরিবেশের স্থানান্তরের জন্য রফতানি সরঞ্জাম ব্যবহার করে আপনি এটি দেখতে পান:

conda env export -n <env-name> > environment.yml

ফাইলটি কনডা প্যাকেজ এবং পাইপ প্যাকেজ উভয়কেই তালিকাভুক্ত করবে:

name: stats
channels:
  - javascript
dependencies:
  - python=3.4
  - bokeh=0.9.2
  - numpy=1.9.*
  - nodejs=0.10.*
  - flask
  - pip:
    - Flask-Testing

আপনি যদি পরিবেশ রফতানি করে অনুসরণ environment.ymlকরতে চান তবে নতুন হোস্ট মেশিনে যান এবং চালান:

conda env create -f path/to/environment.yml

64

condaএটি ইনস্টল হওয়া প্যাকেজগুলির কেবলমাত্র ট্র্যাক রাখবে। এবং pipআপনাকে প্যাকেজগুলি দেবে যা হয় হয় pipনিজেই ইনস্টলারটি ব্যবহার করে ইনস্টল করা হয়েছিল বা তারা setuptoolsতাদের setup.pyকনডা বিল্ডে ব্যবহৃত ডিম সম্পর্কিত তথ্য তৈরি করে। সুতরাং আপনার কাছে মূলত তিনটি বিকল্প রয়েছে।

  1. আপনি ইউনিয়নের নিতে পারেন conda listএবং pip freezeএবং প্যাকেজ ব্যবহার ইনস্টল করা পরিচালনা conda(যে প্রদর্শনী conda listসহ) condaপ্যাকেজ ম্যানেজার, এবং বেশী যে সঙ্গে ইনস্টল করা হয় pip(যা প্রদর্শনী pip freezeনেই কিন্তু conda listসঙ্গে) pip

  2. আপনার পরিবেশ শুধুমাত্র ইনস্টল python, pipএবং distributeপ্যাকেজ এবং সবকিছু পরিচালনা pip। (আপনি উইন্ডোজে থাকলে এটি তুচ্ছ নয় ...)

  3. আপনার নিজস্ব condaপ্যাকেজগুলি তৈরি করুন এবং এর মাধ্যমে সবকিছু পরিচালনা করুন conda

আমি ব্যক্তিগতভাবে তৃতীয় বিকল্পটি সুপারিশ করব কারণ condaপ্যাকেজগুলি তৈরি করা খুব সহজ । ধারাবাহিকের গিথুব অ্যাকাউন্টে উদাহরণস্বরূপ রেসিপিগুলির একটি গিট সংগ্রহস্থল রয়েছে। তবে এটি সাধারণত এগুলিতে সিদ্ধ হয়:

 conda skeleton pypi PACKAGE
 conda build PACKAGE

বা শুধু:

conda pipbuild PACKAGE

এছাড়াও আপনি যখন এগুলি একবার তৈরি করেন, আপনি সেগুলি https://binstar.org/ এ আপলোড করতে পারেন এবং সেখান থেকে ইনস্টল করতে পারেন ।

তারপরে আপনার ব্যবহৃত সমস্ত কিছু পরিচালনা করা হবে conda


3
আমি শুধু চেষ্টা ~/anaconda/bin/pip install memory-profilerএবং conda install numba, এবং তারা উভয় দেখানো হয় ~/anaconda/bin/pip freeze
osa

2
"ধারাবাহিকের গিথুব অ্যাকাউন্টে উদাহরণস্বরূপ রেসিপিগুলির গিট সংগ্রহস্থল" আপনার অর্থ কি github.com/ContinuumIO/anaconda-recips ? আপনি যদি পারেন তবে লিংক করুন
এন্ডোলিথ

এটি আসলে প্যাকেজটি ইনস্টল করে না যাতে আপনি এটি আমদানি করতে পারেন। আপনাকে স্ট্যাকওভারফ্লোconda install C:\...PACKAGE-0.0.0-py27_0.tar.bz2 . com
a/

আমি বলতে চাই যে সর্বদা conda install python=3.x.yআপনার কনডা পরিবেশে সর্বদা এমন থাকে যে পরবর্তী পিপ ইনস্টলগুলি কনডা ইনস্টলড পাইপের মধ্য দিয়ে যায়।
উস্তামান সংগীত

24

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

এই শাখাটি এই সপ্তাহের শেষের দিকে একত্রীকরণের জন্য নির্ধারিত হয়েছে যাতে কনডার ২.১ সংস্করণটি কনডোর সাথে আরও ভাল পাইপ-সংহতকরণ করবে।


2
আমি উল্লেখ করতে চাই যে এটি ইতিমধ্যে কনডা ২.২.৩ এ কাজ করছে (এবং সম্ভবত এর আগে)। এটি যেভাবে কাজ করে তা হ'ল যদি আপনি চেষ্টা করেন conda install packageএবং এটি কোনও কনডা রেসিপিটি না খুঁজে পান তবে এটি এটি ইনস্টল করার চেষ্টা করে pip(এবং তারপরে এটি ট্র্যাক করে রাখে)। এমনকি এটি pipআপনার পরিবেশে না থাকলে ইনস্টল করার পরামর্শ দেয় । আপনার সমস্ত কাজের জন্য ট্র্যাভিস ধন্যবাদ!
জর্জেকা

5
স্পষ্টকরণ, যেহেতু আমি এটি বেশ কয়েকবার ভুলভাবে লিখেছি। @ ট্রাভিস মানে আমার মনে হয় যে যদি কোনও একটি কন্ডার ভিতরে চলছে, তবে রানিং পিপ প্রথমে কনডা প্যাকেজগুলির সন্ধান করবে? বিপরীতটি অবশ্যই সত্য নয় - কনডা ইনস্টলটি পাইপাই প্যাকেজগুলির সন্ধান করে না, এমনকি পাইপ.বিনস্ট্রার.অর্গ.এর আইটেমও সন্ধান করে না। এটি কনডা হিসাবে 3.5.2।
অ্যানিএগাইল

9
এটি কি সরানো হয়েছে? যদি আমি দৌড়ে যাই, বলুন, conda install autopep8এটি আমাকে "কোনও প্যাকেজ পাওয়া যায় নি" বলেছে এবং আমার নিজেই anaconda.org অনুসন্ধান করা উচিত।
এন্ডোলিথ

@ অ্যানি দ্য অ্যাগিলিও running pip...কাজ করে না, এটি কন্ডদা প্যাকেজটি মোটেই দেখবে না।
ওয়াং

16

আমি @ ভিক্টর কারকেজের উত্তর অনুসরণ করেছি এবং মিশ্র সাফল্য পেয়েছি। আমি যে কখনও কখনও এই রেসিপি পাওয়া যায় নি

কনডা কঙ্কাল পাইপি প্যাকেজ

কনডা প্যাকেজ বিল্ড করুন

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

উদাহরণ: আমি কনডা ২.২.৫ ব্যবহার করে উইন্ডোজটিতে দুর্দান্ত পারপ্লেটিলিব প্যাকেজটি ইনস্টল করতে যাচ্ছি ।

1 ক) conda build --build-recipe prettyplotlib

বিল্ডের চূড়ান্ত টেস্ট বিভাগ পর্যন্ত আপনি বিল্ড বার্তাগুলি সমস্ত দেখতে দেখতে দেখতে ভাল লাগবে। আমি এই ত্রুটি দেখেছি

ফাইল "সি: \ অ্যানাকোন্ডা \ কনডা-বিএলডি \ টেস্ট-টিএমপি_ডির \ রান_স্টেট.পি", লাইন 23 আমদানি কিছুই নয় সিনট্যাক্স এরর: কোনওটিই বরাদ্দ করতে পারবেন না

1 বি) / কনডা-রেসিপিগুলি / চমত্কার্লব লিবিতে যান এবং মেটা.আইএমএল ফাইলটি সম্পাদনা করুন। বর্তমানে, পদক্ষেপ 1a এর মতো প্যাকেজগুলি সেট আপ করা হচ্ছে ফলশ্রুতিতে ত্রুটিযুক্ত ইয়ামল ফাইলগুলির ফলাফল test। উদাহরণস্বরূপ, আমার কীভাবে সন্ধান করা হয়েছে তা এখানেprettyplotlib

test:   # Python imports   imports:
    - 
    - prettyplotlib
    - prettyplotlib

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

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

আপনি যদি এই প্যাকেজটি পরে Binstar.org এ আপলোড করতে চান তবে টাইপ করুন:

$ বিনস্টার আপলোড সি: \ অ্যানাকোন্ডা \ কনডা-বিএলডি \ win-64 \ prettyplotlib-0.1.3-py27_0.tar.bz2

এই tar.bz2 ফাইলটি হ'ল সেই বিল্ড যা আপনার এখন বাস্তবে ইনস্টল করা দরকার।

2) conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2

এই পদক্ষেপগুলি অনুসরণ করে আমি অ্যানাকোন্ডার সাথে না আসে এমন অনেকগুলি প্যাকেজ ইনস্টল করতে সফলভাবে কনডা ব্যবহার করেছি। পূর্বে, আমি pip uninstall PACKAGEপাইপ ব্যবহার করে এর মধ্যে কয়েকটি ইনস্টল করেছিলাম, তাই কনডা সহ প্যাকেজ ইনস্টল করার আগে করেছি। কনডা ব্যবহার করে, আমি এখন কনডা, পিপ, ইজি_ইনস্টল এবং পাইথন সেটআপ.পি ইনস্টল করে থাকা সামগ্রীর মিশ্রণের পরিবর্তে আমার সমস্ত প্যাকেজগুলি একক পদ্ধতির সাথে পরিচালনা করতে পারি।

প্রসঙ্গে, আমি মনে করি @ ট্র্যাভিস অলিফ্যান্টের এই সাম্প্রতিক ব্লগ পোস্টটি আমার মতো লোকদের পক্ষে সহায়ক হবে যারা দৃ Py় পাইথন প্যাকেজিংয়ের যে সমস্ত বিষয় প্রশংসা করেন না তবে যখন জিনিস "স্রেফ কাজ করে" অবশ্যই প্রশংসা করবেন। কনডা মনে হচ্ছে এগিয়ে যাওয়ার এক দুর্দান্ত উপায় ...


2
কনডা সংস্করণ 3.5.2 ব্যবহার করে, কমান্ড বিল্ড - বিল্ড-রেসিপি XXX; 'অচেনা যুক্তি: - বিল্ড-রেসিপি' দিয়ে ত্রুটিগুলি। পূর্ণ প্রতিক্রিয়া হয়; ব্যবহার: কনডা-বিল্ড [-h] [-সি] [- কোন-বিনস্টার-আপলোড] [- আউটপুট] [-এস] [-টি] [- কোন পরীক্ষা] [-ভি] [-কিউ] RECIPE_PATH [RECIPE_PATH ...] কনডা-বিল্ড: ত্রুটি: অচেনা যুক্তি:
বিল্ড

10

এই কারণেই আমি পিকি লিখেছি: http://picky.readthedocs.io/

এটি একটি পাইথন প্যাকেজ যা পাইপ বা কনডা ইনস্টল করা প্যাকেজগুলিকে ভ্যাচুএলএনভি এবং কনডা এনভির দুটিতে ট্র্যাক করে।


3

আমি মনে করি এখানে কী অনুপস্থিত তা হ'ল আপনি যখন:

>pip install .

একটি সেটআপ.পি সহ স্থানীয় প্যাকেজ ইনস্টল করতে, এটি এমন একটি প্যাকেজ ইনস্টল করে যা পাইথনের একই সংস্করণ ব্যবহার করে এমন সমস্ত কনডা এনভির কাছে দৃশ্যমান । দ্রষ্টব্য আমি পাইপের কনডা সংস্করণটি ব্যবহার করছি!

উদাহরণস্বরূপ, যদি আমি পাইথন 2.7 ব্যবহার করি এটি স্থানীয় প্যাকেজটি এখানে রাখে:

/usr/local/anaconda/lib/python2.7/site-packages

আমি যদি পরে পাইগন = 2.7 (= ডিফল্ট) দিয়ে একটি নতুন কনডা এনভি তৈরি করি:

>conda create --name new

>source activate new

এবং তারপরে:

(new)>conda list    // empty - conda is not aware of any packages yet

তবে, আমি যদি:

(new)>pip list      // the local package installed above is present

সুতরাং এই ক্ষেত্রে, কনডা পাইপ প্যাকেজ সম্পর্কে জানে না, তবে প্যাকেজটি পাইথনকে উপলভ্য।

যাইহোক, নতুন কনডা এনভিটি তৈরি করার পরে আমি যদি এর পরিবর্তে স্থানীয় প্যাকেজটি (আবার পাইপ ব্যবহার করে) ইনস্টল করি, তবে এখন কনডা এটি দেখে:

(new)>conda list   // sees that the package is there and was installed by pip

সুতরাং আমি মনে করি কনডা এবং পাইপের মধ্যে মিথস্ক্রিয়া কিছু সমস্যা রয়েছে - যেমন একটি কনডা এনভির মধ্যে থেকে স্থানীয় প্যাকেজ ইনস্টল করার জন্য পিপ ব্যবহার করে সেই প্যাকেজটি একই পাইথন সংস্করণের অন্যান্য সমস্ত কনডা এনভির কাছে উপলব্ধ (তবে কনডা তালিকার মাধ্যমে দেখা যায় না) তৈরি করে।


2

conda env exportপরিবেশে সমস্ত কনডা এবং পাইপ প্যাকেজ তালিকাভুক্ত করে। conda-envঅবশ্যই কনডা রুটে ইনস্টল করা উচিত ( conda install -c conda conda-env)।

environment.ymlবর্তমান পরিবেশ বর্ণনা করে একটি ফাইল লিখতে :

conda env export > environment.yml

তথ্যসূত্র:


2

আপনি 'পাইপ' কমান্ডের আগে প্যাকেজটি ইনস্টল করতে চান সেই নির্দিষ্ট পরিবেশের জন্য আমি সাধারণত 'বিন / পাইপ' ফোল্ডারটি উপস্থাপন করি। উদাহরণস্বরূপ, আপনি যদি পরিবেশ পাই 34 এ পিমক 3 ইনস্টল করতে চান তবে আপনার এই কমান্ডটি ব্যবহার করা উচিত:

~/anaconda/envs/py34/bin/pip install git+https://github.com/pymc-devs/pymc3 

আপনাকে মূলত আপনার পরিবেশ 'বিন / পাইপ' ফোল্ডারের সঠিক পথ খুঁজে বের করতে হবে এবং এটি ইনস্টল কমান্ডের আগে স্থাপন করতে হবে।


1

আমার which pipনীচের পথটি দেখায়:

$ which pip
/home/kmario23/anaconda3/bin/pip

সুতরাং, আমি যে প্যাকেজটি ব্যবহার করে ইনস্টল pip install <package-name>করব তা ব্যবহার করে তালিকাটি রফতানি করার সময় প্যাকেজগুলির তালিকায় প্রতিফলিত হতে হবে:

$ conda list --export > conda_list.txt

কিন্তু, আমি না। সুতরাং, পরিবর্তে আমি নিম্নলিখিত কমান্ডটি ব্যবহার করেছিলাম বেশ কয়েকটি অন্যের পরামর্শ অনুসারে:

# get environment name by
$ conda-env list

# get list of all installed packages by (conda, pip, etc.,)
$ conda-env export -n <my-environment-name> > all_packages.yml
# if you haven't created any specific env, then just use 'root'

এখন, আমি আমার all-packages.ymlফাইলের সমস্ত প্যাকেজ দেখতে পাচ্ছি ।


1

আপনি কনডা পরিবেশে নীচের প্রদত্ত কমান্ডটি ইনস্টল করে শুরু করতে পারেন:

conda install pip

পরিবেশে আপনার প্রয়োজনীয় সমস্ত পাইপ প্যাকেজ ইনস্টল করে।

পরিবেশের রফতানি করতে সমস্ত কনডা এবং পাইপ প্যাকেজ ইনস্টল করার পরে:

conda env export -n <env-name> > environment.yml

এটি ফোল্ডারে প্রয়োজনীয় ফাইল তৈরি করবে

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