পাইপ ইনস্টল করার সঠিক উপায় কী, পাইথনের জন্য ভার্চুয়ালেনভ এবং বিতরণ করা যায়?


247

সংক্ষিপ্ত প্রশ্ন

  • ইনস্টল করার জন্য সঠিক উপায় কি pip, virtualenvএবং distribute?

পটভূমি

ইন আমার উত্তর করতে তাই প্রশ্ন 4314376 , আমি ব্যবহার বাঞ্ছনীয় ez_setupযে আপনি তারপর ইনস্টল যায়নি, তাই pipএবং virtualenvনিম্নরূপ:

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

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

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

আর কোনও সেটআপলুলস এবং ইজি_ ইনস্টল নেই

সত্যই পাইথন পাবলিক সার্ভিস ঘোষণাটি অনুসরণ করতে , একটি নতুন পাইথন ইনস্টল করে, আমি নিম্নলিখিতটি করব:

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

গ্লাইফের রিবুক

মন্তব্যে আমার উত্তর করতে তাই প্রশ্ন 4314376 , তাই ব্যবহারকারী গ্লিফের বলেন:

কোন। কখনই sudo python setup.py installনা করুন। একটি ~ / .pydistutils.cfg লিখুন যা আপনার পাইপ ইনস্টলেশনটিকে ~ / .local বা অন্য কোনও কিছুর মধ্যে রাখে। বিশেষত নামযুক্ত ফাইলগুলি ez_setup.pyসেটআপলগুলি এবং ইজি_ইনস্টল ইত্যাদির মতো নতুন সংস্করণগুলিকে স্তন্যপান করে, যা আপনার অপারেটিং সিস্টেমের অন্যান্য জিনিসগুলি সম্ভাব্যভাবে ভেঙে দিতে পারে।

সংক্ষিপ্ত প্রশ্নে ফিরে যান

সুতরাং গ্লাইফের প্রতিক্রিয়া আমাকে আমার মূল প্রশ্নের দিকে নিয়ে যায়:

  • ইনস্টল করার জন্য সঠিক উপায় কি pip, virtualenvএবং distribute?

ম্যাথু, আমি জানি এই থ্রেডটি বরং পুরানো। তবে এই ফ্রন্টে নতুন কিছু আছে কি? এটি python distribute_setup.pyঅনুসরণ করা easy_install pipএবং এখনও করা কি একটি খারাপ ধারণা virtualenv --distribute venv? ( পাইথন- গাইড ) .ড্রেটহেডোকস.আর.ইং / স্পেনস্ট / স্টার্টিং / ইনস্টল/… দেখুন ) এবং যদি তা হয় তবে কেন?
আমিলিও ওয়াজকেজ-রেইনা

2
এর সাথে কি হয়েছে sudo apt-get install python-{pip,virtualenv}???
MestreLion

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

2
অবগতির জন্য, এই প্রশ্নের বিভিন্ন লিঙ্ক এখন পুরানো হয় / ভাঙ্গা - আমি বর্তমানে (করা যাবে না) বেশী দেখতে pip, virtualenvএবং পাইথন পিএসএ।
ক্রিস স্প্রেগ

1
http://python-distribute.org/distribute_setup.py404 :( এ পুনর্নির্দেশ করুন
jitter

উত্তর:


173

পাইথনে নিজেই কিছু ইনস্টল না করে আপনি এটি করতে পারেন ।

আপনার সুডো বা কোনও সুযোগ-সুবিধার দরকার নেই।

আপনার কোনও ফাইল সম্পাদনা করার দরকার নেই।

বুটস্ট্র্যাপ ভার্চুয়াল পরিবেশে ভার্চুয়ালেনভ ইনস্টল করুন। আরও তৈরি করতে সেই ভার্চুয়াল পরিবেশটি ব্যবহার করুন। যেহেতু ভার্চুয়ালেনভ জাহাজগুলি পাইপ এবং বিতরণ করে, তাই আপনি একটি ইনস্টল থেকে সবকিছু পান।

  1. গেম ডাউনলোড করুন:
  2. উত্স টারবাল আনপ্যাক করুন
  3. একটি পরিষ্কার ভার্চুয়াল পরিবেশ তৈরি করতে আনপ্যাক করা টারবল ব্যবহার করুন। এই ভার্চুয়াল পরিবেশটি অন্যদের "বুটস্ট্র্যাপ" করতে ব্যবহৃত হবে। আপনার সমস্ত ভার্চুয়াল পরিবেশে স্বয়ংক্রিয়ভাবে পাইপ এবং বিতরণ থাকবে।
  4. পাইপ ব্যবহার করে, সেই বুটস্ট্র্যাপ পরিবেশে ভার্চুয়ালেনভ ইনস্টল করুন।
  5. আরও তৈরি করতে সেই বুটস্ট্র্যাপ পরিবেশটি ব্যবহার করুন!

বাশের একটি উদাহরণ এখানে:

# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv

# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz

এখন আপনি আরও তৈরি করতে আপনার "বুটস্ট্র্যাপ" পরিবেশ ব্যবহার করতে পারেন:

# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2

বাদাম যাও!

বিঃদ্রঃ

এটি ধরে নিয়েছে যে আপনি ভার্চুয়ালেনভের সত্যিকারের পুরানো সংস্করণ ব্যবহার করছেন না। পুরানো সংস্করণগুলির জন্য পতাকাগুলি প্রয়োজন --no-site-packges(এবং পাইথনের সংস্করণ অনুসারে --distribute)। এখন আপনি কেবল python virtualenv.py path-to-bootstrapবা দিয়ে আপনার বুটস্ট্র্যাপ পরিবেশ তৈরি করতে পারেন python3 virtualenv.py path-to-bootstrap


13
বিরক্তিকর শুধুমাত্র কারণ এটি খুব সাধারণ, একটি সাধারণ ডাউনলোড, আনতার এবং তারপরে python virtualenv.py TARGET_DIRECTORYএকই কাজ করে।
সেবাস্তিয়ান ব্লাস্ক

3
এটা অসাধারণ. আমি পাইথন একাধিক সংস্করণ জুড়ে virtualenv ইনস্টল সম্পর্কে আমার আরো নির্দিষ্ট প্রশ্নের উত্তর দিতে এটা অভিযোজিত সিস্টেম প্যাকেজ indpendently - stackoverflow.com/questions/6812207/... - ঠিকভাবে কাজ।
ডেভিড.লিব্রেমন

6
দ্রষ্টব্য: বর্তমানের virtualenv'--no-সাইট-প্যাকেজগুলি - বিতরণ' বিকল্পগুলির দরকার নেই। বিপরীতে --system-site-packagesপ্রয়োজন হতে পারে
jfs

1
আপনি এই আদেশটি সহ সর্বশেষতম স্থিতিশীল টারবাল পেতে পারেন:curl -Lo virtualenv-tmp.tar.gz 'https://github.com/pypa/virtualenv/tarball/master'
বোহর

1
আপনি কোথায় ইনস্টল করবেন virtualenvwrapper? দস্তাবেজগুলি বিশেষত সতর্ক করেছে যে এটি কোনও ভার্চুয়ালেনভে ইনস্টল না করা (যদিও এটি কাজ করে বলে মনে হচ্ছে )।
আরেহ লাইব বৃষ

21

আমি মনে করি গ্লাইফ মানে এরকম কিছু করা:

  1. একটি ডিরেক্টরি তৈরি করুন ~/.local, যদি এটি ইতিমধ্যে বিদ্যমান না থাকে।
  2. আপনার মধ্যে ~/.bashrc, ~/.local/binএটি চালু রয়েছে PATHএবং তা চালু রয়েছে তা নিশ্চিত ~/.localকরুন PYTHONPATH
  3. ~/.pydistutils.cfgরয়েছে এমন একটি ফাইল তৈরি করুন

    [install]
    prefix=~/.local

    এটি একটি স্ট্যান্ডার্ড কনফিগার পার্সার-ফর্ম্যাট ফাইল।

  4. ডাউনলোড distribute_setup.py এবং চালান python distribute_setup.py(না sudo)। যদি এটি কোনও অ-বিদ্যমান site-packagesডিরেক্টরি সম্পর্কে অভিযোগ করে তবে এটিকে ম্যানুয়ালি তৈরি করুন:

    mkdir -p ~ / .local / lib / python2.7 / সাইট-প্যাকেজ /

  5. চালান which easy_installতা যাচাই করতে তা থেকে আসছে~/.local/bin

  6. চালান pip install virtualenv
  7. চালান pip install virtualenvwrapper
  8. বলুন, একটি ভার্চুয়াল এনভিভি তৈরি করুন ফোল্ডারযুক্ত ~/.virtualenvs
  9. ~/.bashrcঅ্যাড ইন

    export WORKON_HOME
    source ~/.local/bin/virtualenvwrapper.sh

এটি sudoহ'ল ~/.local, আপনার পাইথন পরিবেশের মোটেই কোনও ব্যবহার নেই , ওএসের পাইথন থেকে সম্পূর্ণ পৃথক। দাবি অস্বীকার: এই দৃশ্যে কতটা সামঞ্জস্যপূর্ণ virtualenvwrapperতা নিশ্চিত নয় - আমি এটি আমার সিস্টেমে পরীক্ষা করতে পারিনি :-)


2
Umb / .local কি কিছুটা বোবা নাম? যদি রুবিও একই কাজ করতে চায়? সম্ভবত ~ / .python27 আরও ভাল হতে পারে?
জোনাথন হার্টলি

1
কেবল একটি নোট, আমি উইন্ডোজে ঠিক একই জিনিসটি চেষ্টা করেছি এবং সফলভাবে ডিস্ট্রিবিউট_সেটআপ.পি চালানোর জন্য পাইথনপথে স্থানীয় ফোল্ডার (উদাহরণস্বরূপ "স্থানীয়") এবং "স্থানীয় \ Lib \ সাইট-প্যাকেজ" উভয়ই যুক্ত করতে হয়েছিল।
টেকনোমলজিক্যাল

1
এই পদ্ধতির সাথে একটি শেষ সমস্যা: virtualenv .pydistutils.cfg ফাইলটি ব্যবহারের সাথে বেমানান। দেখুন github.com/pypa/virtualenv/issues/88
ড্যান

3
আমি মনে করি easy_install pip5 থেকে 6 ধাপের মধ্যে একটি হওয়া উচিত
সিগজিএফ

5
~ / .Local জিনিস PEP 370 থেকে আসে
এরিক Araujo আপনার

16

আমি এই উত্তরের সাথে সংযুক্ত কয়েকটি টিউটোরিয়ালে পরামর্শ দেওয়া পদক্ষেপগুলি অনুসরণ করে যদি আপনি ওয়াকারের এবং বিনয়ের উত্তরগুলির কিছু জটিল "ম্যানুয়াল" পদক্ষেপ ছাড়াই পছন্দসই প্রভাব পেতে পারেন। আপনি যদি উবুন্টুতে থাকেন:

sudo apt-get install python-pip python-dev

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

brew install python

সঙ্গে pipইনস্টল আপনি এটি ব্যবহার অবশিষ্ট প্যাকেজ (আপনি বাদ করতে পারেন করতে পারেন sudoOS X এর, আপনি আপনার স্থানীয় পাইথন ইনস্টলেশন ব্যবহার করছেন হিসাবে)।

sudo pip install virtualenvwrapper

(এই শুধুমাত্র প্যাকেজ আপনি গ্লোবালি ইনস্টল্ড প্রয়োজন এবং আমি সন্দেহ এটি অপারেটিং সিস্টেম থেকে কিছু সিস্টেম-স্তরীয় সঙ্গে সংঘর্ষ। আপনি সুপার নিরাপদ হতে চান, আপনি ডিস্ট্রো এর সংস্করণ রাখতে পারবেন না sudo apt-get install virtualenvwrapper)

দ্রষ্টব্য: উবুন্টু 14.04-এ আমি পাইপ ইনস্টল করার সাথে কিছু ত্রুটি পেয়েছি, তাই আমি আমার ফাইলটি ব্যবহার করি pip3 install virtualenv virtualenvwrapperএবং যুক্ত VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3করি .bashrc/.zshrc

তারপরে আপনি আপনার .bashrcফাইলে সংযুক্ত হন

export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh

এবং এটি উত্স

. ~/.bashrc

এটি মূলত এটি। এখন একমাত্র সিদ্ধান্ত আপনি সিস্টেম-স্তরের প্যাকেজ অন্তর্ভুক্ত করতে ভার্চুয়ালেনভ তৈরি করতে চান কিনা

mkvirtualenv --system-site-packages foo

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

kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0

বিকল্প, আপনি যদি একটি সম্পূর্ণ বিচ্ছিন্ন পরিবেশ চান, হয়

mkvirtualenv --no-site-packages bar

অথবা প্রদত্ত যে এটি কেবলমাত্র ডিফল্ট বিকল্প

mkvirtualenv bar

ফলাফলটি হ'ল আপনার একটি নতুন ভার্চুয়ালেনভ রয়েছে যেখানে আপনি নিখরচায় এবং নিরলসভাবে আপনার প্রিয় প্যাকেজ ইনস্টল করতে পারেন

pip install flask

এটি কি সেটআপলগুলি ইনস্টল করে এবং বিতরণ করে না? এবং এটি কি টিনেটার এবং পাইপেনক্লির মতো প্যাকেজগুলি ব্রেকআপ করে না যা সেটআপটুলগুলি পছন্দ করে না?
hobs

বাশার্কে কি ওয়ার্কনহোমকে সেট করার ফলে ভ্যানভ্রাপারকে যুক্তিসঙ্গত কিছু ব্যবহার করতে বাধ্য করা হয় export WORKON_HOME="$HOME/.virtualenvs"?
hobs

ঠিক আছে, এটি আপনার প্যাকেজ ম্যানেজার যা বলে তা পাইপ নির্ভর করে যা ইনস্টল করে। বর্তমানে, উবুন্টু এবং ওএস এক্স-এ brew install pythonসেটআপলগুলি রয়েছে ( পিপ + সেটআপলগুলিকে টেনে আনছে)। এই পদ্ধতির আমার জন্য ভাল কাজ করে। সংযোজন, পাইপে ফোকাস করা পাইথন প্যাকেজিংয়ের ক্ষেত্রেও ভবিষ্যতের পথ বলে মনে হচ্ছে ।
metakermit

1
WORKON_HOMEডিফল্ট ~/.virtualenvs, হ্যাঁ। /usr/local/bin/virtualenvwrapper.shসেটে একটি লাইন আছে workon_home_dir="$HOME/.virtualenvs" if [ "$workon_home_dir" = "" ]
metakermit

বুঝেছি. ধন্যবাদ। আপনার সহজ পদ্ধিতি উবুন্টু 12.04 এ আমার পক্ষে দুর্দান্ত কাজ করেছে যখন ডিপ (ডিওপেনক্লাব) ব্যবহারের বিষয়ে পছন্দসই পাইপ ইনস্টল করার মডিউল থাকে। আমার জন্য কৌতুক আপনার আপ অনুসরণ করছিলেন pip install virtualenv virtualenv-wrapperসঙ্গে সঙ্গতিপূর্ণ pip install --upgrade distributeসক্রিয় virtualenv যে আমি তারপর pyopencl ইনস্টল মধ্যে। আমি আরও যোগ করেছেন export PROJECT_HOME="$HOME/src"শীতল সক্রিয় করতে আমার bashrc করার mkprojectvenv হাতিয়ার।
hobs

12

পাইথন ৩.৪ এগিয়ে

পাইথন ৩.৩ ভেন্ট মডিউল যুক্ত করে এবং পাইথন ৩.৪ যোগকারী মডিউল যুক্ত করে । এটি বুটস্ট্র্যাপিং পাইপকে এত সহজ করে তোলে:

অজগর-মিঃ পাইপ

সম্ভবত venvভার্চুয়াল পরিবেশের মধ্যে এটি করার জন্য কল করার আগে ।

গ্যারান্টিযুক্ত পাইপ PEP 453 এ বর্ণনা করা হয়েছে ।


10

উবুন্টুতে:

sudo apt-get install python-virtualenv

প্যাকেজটি python-pipনির্ভরতা, সুতরাং এটি পাশাপাশি ইনস্টল করা হবে।


1
পাইথন-ভার্চুয়ালেনভ ভার্চুয়ালেনভ এবং পাইপ উভয়ই ইনস্টল করবে। এর পরে পাইথন ভার্চুয়াল পরিবেশ তৈরি করতে কেবল ভার্চুয়ালেনভ চালান। এবং অন্যান্য প্যাকেজ ইনস্টল করতে ভার্চুয়াল এনভিভির মধ্যে থেকে পিপ চালান।
জেমসশু

2
এটি প্রকৃতপক্ষে সানেষ্ট বিকল্প। আপনার ওএসে জিনিসগুলি ইনস্টল করার "যথাযথ" উপায়টি হল আপনার ওএস ইনস্টলার সিস্টেমটি ব্যবহার করা ! এর পরে আপনি খেলতে পারবেন pip, virtualenvsudo
বেশিরভাগ ক্ষেত্রে একটিতে

দুর্ভাগ্যক্রমে, ওএসের সরবরাহ করা সংস্করণগুলির pipমাঝে মাঝে উল্লেখযোগ্য বাগ থাকে, তাই আমি প্রায়শই get-pip.pyপাইথন.আর.গ্রে সরবরাহ করা ব্যবহার করে শেষ করি।
রিচভেল

@ রিচভেল আপনি যে উল্লেখযোগ্য বাগগুলির মুখোমুখি হয়েছিলেন তা কী আপনি বিশদভাবে বর্ণনা করতে পারেন?
ড্যানিয়েলপপস

1
@ ড্যানিয়েলপপস - একটি উদাহরণ হ'ল উবুন্টু ১.0.০৪.১ এ এই পাইপ ইস্যু , তবে নির্দিষ্ট সংস্করণ এবং ব্যবহারের ক্ষেত্রে অন্যান্য সমস্যা থাকতে পারে।
রিচভেল

5

আমাদের কাজের সময় ব্যবহারের জন্য আমি এই পদ্ধতিটি তৈরি করেছিলাম।

cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1

$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper

# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh

mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.

সুরক্ষার জন্য মূল বিষয়গুলি:

  1. কার্ল এসএসএল বৈধতা দেয়। উইজেট না।
  2. পাইপ 1.3.1 থেকে শুরু করে পিপ এসএসএল বৈধতাও দেয়।
  3. গিথুব টার্বলের চেয়ে কম ব্যবহারকারী পিপি টারবাল আপলোড করতে পারবেন।

5

আপডেট: ২০১৩ সালের জুলাই পর্যন্ত এই প্রকল্পটি আর রক্ষণাবেক্ষণ করা হবে না। লেখক পায়েনভ ব্যবহার করার পরামর্শ দিয়েছেন । (পাইয়েনভের মধ্যে ভার্চুয়ালেনভের অন্তর্নির্মিত সমর্থন নেই, তবে এটির সাথে দুর্দান্ত অভিনয় করে))

পাইথনব্রেউ পাইথনের সংস্করণ পরিচালক এবং এটি ভার্চুয়ালেনভের সমর্থন নিয়ে আসে।

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

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle

@ কেরমিট 6666 ধন্যবাদ আমার উত্তরটি পুরানো হিসাবে চিহ্নিত করার পছন্দের উপায় কী হবে? শুধু এটি মুছবেন?
কিওওপি

1
ভাল, আপনি হয় এটি যেমন হয় তেমন ছেড়ে দিতে পারেন (আমার মন্তব্য থেকে লিঙ্কটি অনুসরণ করে এমন লোকেদের জন্য পাইয়নভ ব্যবহারের জন্য নির্দেশাবলী রয়েছে, যা আপনার প্রস্তাবিত পাইথনব্রুর মত ধারণার অনুরূপ) বা আরও ভাল উদাহরণ সহ উত্তরটি সম্পাদনা করুন আপডেট করুন সেপ্টেম্বর ২০১৩ দ্বারা নতুন নির্দেশাবলী সংযোজন। ভবিষ্যতে পাইথনব্রিউ আবার একবার সক্রিয় হয়ে উঠবে তাই আমি আপনার পুরানো নির্দেশাবলী মুছব না। আরও তথ্যের জন্য মেটা দেখুন
metakermit

আমার দেখুন উত্তর সম্পর্কে pyenv, যা ভাল কাজ করে।
রিচভেল

3

Sudo পাইথন সেটআপ.পাই ইনস্টল করতে কোনও সমস্যা নেই, যদি আপনি নিশ্চিত হন তবে এটিই আপনি করতে চান।

পার্থক্যটি হ'ল এটি আপনার ওএসের সাইট প্যাকেজ ডিরেক্টরিটি .py ফাইলগুলি অনুলিপি করার জন্য গন্তব্য হিসাবে ব্যবহার করবে।

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


1
হ্যাঁ, আমি সেভাবে ব্যবহার করেছি। এবং কিছু সময় পরে, pip freezeআমাকে অনুরোধ করা প্রায় হিমশীতল - প্যাকেজগুলির তালিকা, ইনস্টল করা সিস্টেমের প্রশস্ততা অনেক দীর্ঘ ছিল। সেই থেকে, আমি দৃ strongly়ভাবে "নো সুডো" এবং "নো ওএস-ওয়াইড" পাইথন প্যাকেজ ইনস্টলেশনটি ব্যবহার করার পরামর্শ দিচ্ছি।
জান ভ্লকিনস্কি


2

আমি সম্প্রতি একই সমস্যা জুড়ে এসেছি। আমি "সর্বদা একটি ভার্চুয়ালেনভ ব্যবহার করুন" মানসিকতার প্রতি আরও আংশিক হয়ে উঠছি, সুতরাং আমার সমস্যাটি ছিল আমার বৈশ্বিক বা ব্যবহারকারী সাইট-প্যাকেজ ডিরেক্টরিতে বিতরণ ইনস্টল না করে পাইপ দিয়ে ভার্চুয়ালেনভ ইনস্টল করা। এটি করার জন্য, আমি ম্যানুয়ালি বিতরণ, পাইপ এবং ভার্চুয়ালেনভ ডাউনলোড করেছি এবং প্রত্যেকের জন্য আমি "পাইথন সেটআপ.পি ইনস্টল - प्रीফিক্স pre / .লোকাল / পাইথন-প্রাইভেট" চালিয়েছি (পাইথোনপ্যাথ = ~ / লোকাল / এর অস্থায়ী সেটিং সহ) পাইথন-প্রাইভেট) যাতে সেটআপ স্ক্রিপ্টগুলি বিতরণ সন্ধান করতে সক্ষম হয়)। আমি আমার পাথের উপরে থাকা ভার্চুয়ালেনভ স্ক্রিপ্টটিকে অন্য ডিরেক্টরিতে স্থানান্তরিত করেছি এবং এটি সম্পাদনা করেছি যাতে ডিস্ট্রিবিউট এবং ভার্চুয়ালেনভ মডিউলগুলি sys.path এ পাওয়া যায়। টাডা: আমি / ইউএসআর, / ইউএসআর / লোকাল বা আমার ইউজার সাইট-প্যাকেজগুলির জন্য কিছু ইনস্টল করি নি, তবে আমি যে কোনও জায়গায় ভার্চুয়ালেনভ চালাতে পারি, এবং সেই ভার্চুয়ালেনভে আমি পাইপ পাই।



2

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

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

  • ম্যাকে, টাইপ করুন brew install pyenvএবং লিনাক্সে, পাইএনভ-ইনস্টলার ব্যবহার করুন
  • এটি আপনাকে বিল্ট-ইন ভার্চুয়ালেনভ সমর্থন পাশাপাশি পাইথন সংস্করণ স্যুইচিংয়ের প্রয়োজন হয় (যদি প্রয়োজন হয়)
  • পাইথন 2 বা 3 এর সাথে ভালভাবে কাজ করে, একসাথে অনেকগুলি সংস্করণ ইনস্টল থাকতে পারে

সিস্টেম পাইথন থেকে "নতুন পাইথন" সংস্করণ এবং ভার্চুয়ালেনভকে অন্তরক করতে এটি খুব ভাল কাজ করে। যেহেতু আপনি সহজেই সাম্প্রতিকতম পাইথনটি ব্যবহার করতে পারেন (২.7.৯ পোস্ট), এসএসএল মডিউলগুলি ইতিমধ্যে আপগ্রেড করা হয়েছে এবং অবশ্যই যে কোনও আধুনিক ভার্চুয়ালেনভ সেটআপের মতো আপনাকে সিস্টেম পাইথন মডিউলগুলি থেকে অন্তরক করা হয়েছে।

বেশ কয়েকটি সুন্দর টিউটোরিয়াল:

pyenv-virtualenvটাইপ - প্লাগইন এখন নির্মিত হয় pyenv commands | grep virtualenvবার করো। আমি পাইয়েনভ-ভ্যুচুয়ালেনভ্রাপার প্লাগইনটি শুরু করতে ব্যবহার করব না - আপনি কীভাবে পাইয়েনভ-ভার্চুয়ালেনভের সাথে এগিয়ে যাবেন তা আরও ভালভাবে পাইযেভকে আরও একীভূত করা হয়েছে, কারণ এটি বেশিরভাগ ভ্যুচুয়ালেভ্রাপার কী করে covers

pyenvমডেল করা হয়েছে rbenv(রুবি সংস্করণ স্যুইচিংয়ের জন্য একটি ভাল সরঞ্জাম) এবং এর একমাত্র নির্ভরতা বাশ ash

  • পাইয়নভ খুব একইভাবে নামের সাথে সম্পর্কিত নয় pyvenv- এটি একটি ভার্চুয়ালেনভ সমতুল্য যা সাম্প্রতিক পাইথন 3 সংস্করণের অংশ, এবং পাইথন সংস্করণ স্যুইচিং পরিচালনা করে না

আদেশ সহকারে

পাইয়ানভ সম্পর্কে দুটি সতর্কতা:

  1. এটি কেবল বাশ বা অনুরূপ শেল থেকে কাজ করে - বা আরও সুনির্দিষ্টভাবে, পাইেনভ-ভার্চুয়ালেনভ প্লাগইন পছন্দ করে না dash, যা /bin/shউবুন্টু বা ডেবিয়ানে রয়েছে।
  2. এটি অবশ্যই একটি ইন্টারেক্টিভ লগইন শেল (যেমন bash --loginটার্মিনাল ব্যবহার করে) থেকে চালানো উচিত , যা উত্তরী হিসাবে অটোমেশন সরঞ্জামগুলির সাথে অর্জন করা সবসময় সহজ নয় ।

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

এসএসএল মডিউল সমস্যা

ব্যবহারের একটি কারণ pyenvহ'ল পুরানো সিস্টেম-সরবরাহিত পাইথন সংস্করণ ব্যবহার করার সময় পাইথন এসএসএল মডিউলগুলি আপগ্রেড করার ক্ষেত্রে প্রায়শই সমস্যা রয়েছে:


2
  • পাইথনে নিজেই কিছু ইনস্টল না করে আপনি এটি করতে পারেন।

  • আপনার সুডো বা কোনও সুযোগ-সুবিধার দরকার নেই।

  • আপনার একটি virtualenvট্যারি ফাইলের সর্বশেষতম সংস্করণটি সন্ধান করার দরকার নেই

  • জিনিসগুলি আপ টু ডেট রাখার জন্য আপনাকে বাশ স্ক্রিপ্টে সংস্করণ তথ্য সম্পাদনা করার দরকার নেই।

  • আপনার প্রয়োজন নেই curl/ wgetঅথবা tarইনস্টলড, pipবা নাeasy_install

  • এটি 2.7 এর পাশাপাশি 3.x এর জন্যও কাজ করে

নিম্নলিখিতগুলিকে এতে সংরক্ষণ করুন /tmp/initvenv.py:

থেকে ভবিষ্যতে আমদানি print_function

import os, sys, shutil, tempfile, subprocess, tarfile, hashlib

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

tmp_dir = tempfile.mkdtemp(prefix='initvenv_')
try:
    # read the latest version from PyPI
    f = urlopen("https://pypi.python.org/pypi/virtualenv/")
    # retrieve the .tar.gz file
    tar_found = False
    url = None
    sha256 = None
    for line in f.read().splitlines():
        if isinstance(line, bytes):
            line = line.decode('utf-8')
        if tar_found:
            if 'sha256' in line:
                sha256 = line.split('data-clipboard-text')[1].split('"')[1]
                break
            continue
        if not tar_found and 'tar.gz">' not in line:
            continue
        tar_found = True
        for url in line.split('"'):
            if url.startswith('https'):
                break
    else:
        print('tar.gz not found')
        sys.exit(1)
    file_name = url.rsplit('/', 1)[1]
    print(file_name)
    os.chdir(tmp_dir)
    data = urlopen(url).read()
    data_sha256 = hashlib.sha256(data).hexdigest()
    if sha256 != data_sha256:
        print('sha256 not correct')
        print(sha256)
        print(data_sha256)
        sys.exit(1)
    with open(file_name, 'wb') as fp:
        fp.write(data)
    tar = tarfile.open(file_name)
    tar.extractall()
    tar.close()
    os.chdir(file_name.replace('.tar.gz', ''))
    print(subprocess.check_output([sys.executable, 'virtualenv.py'] +
                                  [sys.argv[1]]).decode('utf-8'), end='')
    if len(sys.argv) > 2:
        print(subprocess.check_output([
            os.path.join(sys.argv[1], 'bin', 'pip'), 'install', 'virtualenv'] +

            sys.argv[2:]).decode('utf-8'), end='')
except:
    raise
finally:
    shutil.rmtree(tmp_dir)  # always clean up

এবং হিসাবে এটি ব্যবহার করুন

python_binary_to_use_in_venv /tmp/initvenv.py your_venv_name [optional packages]

উদাহরণস্বরূপ (যদি আপনার সত্যিকারের distributeজন্য সামঞ্জস্য স্তর প্রয়োজন হয় setuptools)

python /tmp/initvenv.py venv distribute

দয়া করে নোট করুন, পুরানো অজগর সংস্করণ সহ, এটি আপনাকে দিতে পারে InsecurePlatformWarning¹

একবার আপনার ভার্চুয়ালেনভ (নাম যেমন venv) হয়ে গেলে আপনি virtualenvসবেমাত্র ইনস্টল করে আরও একটি ভার্চুয়ালেনভ সেটআপ করতে পারেন :

venv/bin/virtualenv venv2

virtualenvwrapper

আমি একবারের সেটআপ করার পরে, ভ্যুচুয়ালেনভ্রাপারকেও একবার দেখার পরামর্শ দিচ্ছি :

% /opt/python/2.7.10/bin/python /tmp/initvenv.py venv virtualenvwrapper

এবং অ্যাক্টিভেশন (আপনার লগইন স্ক্রিপ্ট থেকে সম্পন্ন করা যেতে পারে):

% source venv/bin/virtualenvwrapper.sh

আপনি যেমন কাজ করতে পারেন:

% mktmpenv 
New python executable in tmp-17bdc3054a46b2b/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-17bdc3054a46b2b)% 

The সতর্কতা দমন করার কোনও উপায় আমি খুঁজে পাইনি। এটি pipএবং / অথবা সমাধান করা যেতে পারে requestতবে বিকাশকারীরা একে অপরকে কারণ হিসাবে দেখায়। আমি সর্বশেষ সংস্করণে ব্যবহৃত পাইথন সংস্করণটি আপগ্রেড করার জন্য প্রায়শই অ-বাস্তবের সুপারিশ পেয়েছি। আমি নিশ্চিত যে এটি আমার লিনাক্স মিন্ট 17 টি ইনস্টল করে break ভাগ্যক্রমে pipপ্যাকেজগুলি ক্যাশে করে, তাই সতর্কতা প্যাকেজ ইনস্টল প্রতি একবার মাত্র তৈরি করা হয়।


সতর্কতা InsecurePlatformWarning(উদাহরণস্বরূপ যদি পাইথন সংস্করণ ২.7.৯ এর চেয়ে পুরানো হয়) পিপিআই থেকে অতিরিক্ত প্যাকেজ পায়োপেনসেল, পায়াসন ১, এনডিজি-httpsclient ইনস্টল করে ঠিক করা যায়। (এটি পিএসওএসএসএল এর মাধ্যমে এসএসএল, ডিকোডিং শংসাপত্র, https এর সমর্থন support) ডান প্রোটোকল ছাড়া এটি কোনও কোড ডাউনলোড এবং চালানোর পক্ষে যথেষ্ট নিরাপদ নয়।
hynekcer

@ হাইঙ্কার আমি চেষ্টা করে দেখব আমি নিজেকে জিজ্ঞাসা করি কেন পাইপ এবং / অথবা অনুরোধগুলি উপযুক্ত (পুরানো) পাইথন সংস্করণগুলির জন্য সেই প্যাকেজগুলির উপর নির্ভর করে না।
অ্যান্থন

0

ভার্চুয়ালেনভ অফিসিয়াল সাইটে ভাল নির্দেশনা রয়েছে। https://pypi.python.org/pypi/virtualenv

মূলত আমি যা করেছি, তা ইনস্টল pipকরা হয়েছে sudo easy_install pip, তারপরে ব্যবহৃত হয়েছে sudo pip install virtualenvতারপরে একটি পরিবেশ তৈরি করেছে: virtualenv my_env(আপনি যা চান এটি নাম দিন), আমি যা করেছি তা অনুসরণ করে virtualenv --distribute my_env:; যা ইনস্টল করা হয়েছে distributeএবং pipআমার ভার্চুয়ালনেভে।

আবার, virtualenvপৃষ্ঠায় নির্দেশাবলী অনুসরণ করুন ।

এক ধরণের ঝামেলা, রুবি থেকে আগত; পি


0

এখানে একটা চমৎকার (আপডেট virtualenvwrapper ইনস্টল করার উপায় নেই এই )।

ভার্চুএলএনভ-১.১১.৪ ডাউনলোড করুন (আপনি এখানে সর্বশেষটি খুঁজে পেতে পারেন ), এটি আনজিপ করুন, খুলুনterminal

# Create a bootstrapenv and activate it:
$ cd ~
$ python <path to unzipped folder>/virtualenv.py bootstrapenv
$ source bootstrapenv/bin/activate

# Install virtualenvwrapper:
$ pip install virtualenvwrapper
$ mkdir -p ~/bootstrapenv/Envs

# append it to file `.bashrc`
$ vi ~/.bashrc
  source ~/bootstrapenv/bin/activate
  export WORKON_HOME=~/bootstrapenv/Envs
  source ~/bootstrapenv/bin/virtualenvwrapper.sh

# run it now.
$ source ~/.bashrc

এটি এখন, আপনি ব্যবহার করতে পারেন mkvirtualenv env1, .. lsvirtualenvইত্যাদি

দ্রষ্টব্য: আপনি মুছে ফেলতে virtualenv-1.11.4এবং virtualenv-1.11.4.zipডাউনলোডগুলি ফোল্ডার থেকে করতে পারেন ।


0

সুসংবাদটি হ'ল যদি আপনি পাইথন 3.4 ইনস্টল করেন তবে পাইভেনভ ইতিমধ্যে ইনস্টল করা আছে। সুতরাং, ঠিক

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

এখন এই ভার্চুয়াল এনভিটিতে, আপনি এই প্রকল্পের মডিউল ইনস্টল করতে পাইপ ব্যবহার করতে পারেন।

ঠিক এই ভার্চুয়াল এনভিভি ছেড়ে দিন

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