একটি ভার্চুয়ালেনভে অজগরটিকে আপগ্রেড করুন


206

ভার্চুয়ালেনভে ব্যবহৃত পাইথনের সংস্করণটি আপগ্রেড করার কোনও উপায় আছে (উদাহরণস্বরূপ যদি কোনও বাগফিক্স প্রকাশ প্রকাশিত হয়)?

আমি pip freeze --local > requirements.txtতখন ডিরেক্টরিটি সরিয়ে ফেলতে পারি এবং pip install -r requirements.txt, তবে এর জন্য বড় লাইব্রেরিগুলির প্রচুর পুনরায় ইনস্টলেশন প্রয়োজন, উদাহরণস্বরূপ numpy, যা আমি প্রচুর ব্যবহার করি।

আমি উদাহরণস্বরূপ, 2.6 -> 2.7 থেকে আপগ্রেড করার সময় এটির একটি সুবিধা দেখতে পাচ্ছি, তবে 2.7.x -> 2.7.y কি?


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

@ সিমন ওয়াকার ঠিক একই সমস্যা। আমি একটি বাগ ফিক্সের জন্য পাইথন 3.5.3.3 আপগ্রেড করতে হবে।
মোহাম্মদ শরীফ সি

উত্তর:


77

আপনি দেখেছেন এই ? যদি আমি এই উত্তরটি ভুল না বুঝি তবে আপনি পুরানোটির উপরে একটি নতুন ভার্চুয়ালেনভ তৈরি করার চেষ্টা করতে পারেন। আপনাকে কেবল অজগরটি আপনার ভার্চুয়ালেনভ ব্যবহার করতে চলেছে তা জানতে হবে (আপনাকে আপনার ভার্চুয়ালেনভ সংস্করণটি দেখতে হবে)।

আপনার virtualenv পুরানো এক একই পাইথন সংস্করণের সাথে ইনস্টল করা থাকে এবং আপনার virtualenv প্যাকেজ আপগ্রেড একটি বিকল্প হয় না থাকে, তাহলে আপনি পড়তে পারেন এই অর্ডার পাইথন সংস্করণ যদি আপনি চান সঙ্গে একটি virtualenv ইনস্টল হবে।

সম্পাদনা

আমি এই পদ্ধতির পরীক্ষা করেছি (যেটি পুরানোটির উপরে একটি নতুন ভার্চুয়ালেনভ তৈরি করে) এবং এটি আমার পক্ষে ভাল কাজ করেছে। আমি মনে করি আপনি পাইথন ২.6 থেকে ২.7 বা ২.7 থেকে ৩.x এ পরিবর্তন করলে আপনার কিছু সমস্যা হতে পারে তবে আপনি যদি কেবল একই সংস্করণের অভ্যন্তরে আপগ্রেড হন (আপনার ইচ্ছা মতো ২.7 এ থাকছেন) আপনার সমস্ত সমস্যা যেমন প্যাকেজ হিসাবে থাকবে না পাইথন সংস্করণ উভয়ের জন্য একই ফোল্ডারে (2.7.x এবং 2.7.y প্যাকেজগুলি আপনার_env / lib / পাইথন 2.7 / এর মধ্যে রয়েছে) are

আপনি যদি আপনার ভার্চুয়ালনেভ পাইথন সংস্করণ পরিবর্তন করেন তবে আপনাকে সেই সংস্করণটির জন্য আপনার সমস্ত প্যাকেজগুলি আবার ইনস্টল করতে হবে (অথবা কেবলমাত্র নতুন সংস্করণ প্যাকেজ ফোল্ডারে যেমন আপনার প্রয়োজনীয় প্যাকেজগুলি যুক্ত করতে পারেন, যেমন: your_env / lib / python_newversion / সাইট-প্যাকেজগুলি)


13
বিশেষত সম্ভব হলে কোনও প্যাকেজ পুনরায় ইনস্টল করতে চাননি তিনি। স্পষ্টতই আপনি উত্স থেকে কখনই উদাসীন ইনস্টল করেন নি তবে কেন এটি গুরুত্বপূর্ণ তা যদি আপনি জানেন না;) ইঙ্গিত: এটি একটি লুওইউইউইউইউওওওআং সময় নেয়।
আন্তি হাপালা

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

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

4
এটি আমার পক্ষে কার্যকর হয়নি এবং দেখে মনে হচ্ছে এটি অনুমিত হয় না: github.com/pypa/virtualenv/issues/437
কেনটজো

1
আমি একটি নতুন তৈরি করার চেষ্টা করেছেন virtualenvপুরানো এক উপরে, এবং এটা করেনি হবে। -pপাইথনের সঠিক সংস্করণে এটি নির্দিষ্ট করতে আমাকে নির্দিষ্ট করতে হয়েছিল।
ষা

76

যদি আপনি পাইথন ৩.৩++ এর সাথে আসা ভেনভি মডিউলটি ব্যবহার করছেন, তবে এটি একটি --upgradeবিকল্প সমর্থন করে । প্রতি ডক্স :

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

python3 -m venv --upgrade ENV_DIR

1
দুর্ভাগ্যক্রমে, এটি উবুন্টু ১.0.০৪-তে কাজ করে না, যেখানে তারা ভেঙে দেয় venvএবং এই ভিত্তিতে এটি ঠিক করতে অস্বীকার করে যে "আপনি কেবলমাত্র ভার্চুয়ালেনভ ব্যবহার করতে পারেন"। সম্পাদনা: আসলে, এটি কাজ করে! এটি "নিশ্চিতপীপ" সম্পর্কে একটি ত্রুটি বার্তাও দেখায়।
আরএসপিয়ার

2
আমি অজগরটি আমার সিস্টেমে 3.5.1 থেকে 3.6.4 এ আপগ্রেড করেছি। এবং আমার ভার্চুয়ালনেভকে অজগরটিকে উন্নত করতে, আমাকে কমান্ডে স্পষ্টভাবে পাইথন 3.6 উল্লেখ করতে হয়েছিল:python3.6 -m venv --upgrade <path_of_existing_env>
সরফরাজ আহমেদ

1
আমার ক্ষেত্রে, bin/pythonএবং bin/python3এখনও পুরাতন python3.4বাইনারি লিঙ্ক , এবং আমি লিঙ্কগুলি ম্যানুয়ালি সেট করতে হয়েছিল। এছাড়াও, এখনকার পুরানো অজগর সংস্করণটি সরানোর কোনও উপায় আছে কি?
জেনস

4
আমি পেয়েছি Error: Command '['/Users/me/Sites/site/venv3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.> এর অর্থ কী? আমি কোনও অজগর অ্যাকসেস দেখতে পাচ্ছি না, আপগ্রেড করতে পারছি না।
ব্যবহারকারী 305883

1
@ ব্যবহারকারী 305883 আমি আমার সিস্টেম পাইথন সংস্করণটি 3.5 থেকে 3.6 থেকে আপগ্রেড করার পরে এবং 3.5 কে সরানো হয়ে যাওয়ার পরে একই ধরণের ত্রুটি পেয়েছি। আমাকে 3.5 পুনরায় ইনস্টল করতে হয়েছিল এবং python3.6 -m venv --upgrade ENV_DIRএটি কাজ করার জন্য চালাতে হয়েছিল । আমি মনে করি আমাকে এখনও কিছু প্রতীকী লিঙ্কগুলিতে আপডেট করতে হবে ENV_DIR/bin। অতএব, কৌশলটি ছিল পুরানো সংস্করণ ইনস্টল থাকা অবস্থায় নতুন পাইথন সংস্করণটি আপডেট করা।
অ্যাস্ট্রোফ্লয়েড

24

আবার আপডেট হয়েছে: নিম্নলিখিত পদ্ধতিটি ভার্চুয়ালেনভের নতুন সংস্করণগুলিতে কাজ করতে পারে না। আপনি যদি পুরানো ভার্চুয়ালেনভে পরিবর্তন করার চেষ্টা করার আগে আপনার প্রয়োজনীয় ফাইল (pip freeze > requirements.txt)এ নির্ভরতাগুলি সংরক্ষণ করা উচিতএবং এটি অন্য কোথাও ব্যাকআপ করা উচিত। যদি কোনও ভুল হয়ে যায়, আপনি এখনও একটি নতুন ভার্চুয়ালেনভ তৈরি করতে পারেন এবং এটিতে পুরানো নির্ভরতা ইনস্টল করতে পারেন (pip install -r requirements.txt)।

আপডেট হয়েছে: আমি উত্তরটি মূলত উত্তর দেওয়ার 5 মাস পরে পরিবর্তন করেছি। নিম্নলিখিত পদ্ধতিটি আরও সুবিধাজনক এবং শক্তিশালী।

পার্শ্ব প্রতিক্রিয়া: পাইথনকে v2.7.8 এ আপগ্রেড করার পরেSymbol not found: _SSLv2_methodআপনিimport sslভার্চুয়াল পরিবেশেএটিব্যতিক্রমস্থির করে।

বিজ্ঞপ্তি: বর্তমানে এটি কেবল পাইথন ২.7.x এর জন্য


আপনি যদি ওএস এক্স-এ হোমব্রিউ পাইথন ব্যবহার করেন deactivateতবে প্রথমে সমস্ত ভার্চুয়ালেনভ, তারপরে পাইথন আপগ্রেড করুন:

brew update && brew upgrade python

নিম্নলিখিত কমান্ডগুলি চালনা করুন ( <EXISTING_ENV_PATH>এটি আপনার ভার্চুয়াল পরিবেশের পথ):

cd <EXISTING_ENV_PATH>
rm .Python
rm bin/pip{,2,2.7}
rm bin/python{,2,2.7}
rm -r include/python2.7
rm lib/python2.7/*
rm -r lib/python2.7/distutils
rm lib/python2.7/site-packages/easy_install.*
rm -r lib/python2.7/site-packages/pip
rm -r lib/python2.7/site-packages/pip-*.dist-info
rm -r lib/python2.7/site-packages/setuptools
rm -r lib/python2.7/site-packages/setuptools-*.dist-info

অবশেষে, আপনার ভার্চুয়াল পরিবেশটি পুনরায় তৈরি করুন:

virtualenv <EXISTING_ENV_PATH>

এটি করার মাধ্যমে, কাস্টম লাইব্রেরিগুলি ইনস্টল থাকা অবস্থায় পুরানো পাইথন কোর ফাইল এবং স্ট্যান্ডার্ড লাইব্রেরি (প্লাস setuptoolsএবং pip) সরিয়ে ফেলা হয়site-packages খাঁটি পাইথনের সাথে সাথেই সংরক্ষণ এবং কাজ করা হবে। বাইনারি লাইব্রেরিগুলি সঠিকভাবে কাজ করতে পুনরায় ইনস্টল করার প্রয়োজন হতে পারে বা নাও পারে।

এটি আমার পক্ষে জাজানো ইনস্টল থাকা 5 টি ভার্চুয়াল পরিবেশে কাজ করেছে।

বিটিডাব্লু, যদি ./manage.py compilemessagesপরে কাজ না করে থাকে তবে এটি ব্যবহার করে দেখুন:

brew install gettext && brew link gettext --force

আমার একমাত্র ফাইলটি মুছতে হয়েছিল সেই bin/pythonফাইলটি।
কোয়েন

কিছু পুরানো সংস্করণ পাইথনের জন্য, মোছা setuptoolsএবং pipপ্রয়োজনীয়।
রকাল্লাইট

1
আমাকেও মুছে ফেলতে হয়েছিল <EXISTING_ENV_PATH>/.Pythonকারণ এর ফলে ভ্যুচুয়ালেনভ সৃষ্টিটি ভেঙে গেছে।
কিরণ জোনালাগড্ডা

2
: এই উত্তর ভিত্তিক আমি একটু স্ক্রিপ্ট লিখেছিলেন (সম্পূর্ণ স্বীকৃতিপ্রদান সঙ্গে) burgundywall.com/post/update-all-python-virtual-environments
কার্ট

আপনি দৌড়ে সহজেই আপনার ভার্চুয়াল পরিবেশটি মুছে ফেলতে পারবেন rmvirtualenv <env_name>এবং এর সমস্ত রেখাযুক্ত নির্ভরতা সরিয়ে ফেলবেন
নিক লুকাস

7

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

আমার ~ / .pip / pip.conf দেখতে দেখতে:

[global]
download-cache = /Users/me/.pip/download-cache
find-links =
/Users/me/.pip/wheels/

[wheel]
wheel-dir = /Users/me/.pip/wheels

আমি হুইল ( pip install wheel) ইনস্টল করি , তারপরে রান করুনpip wheel -r requirements.txt । এটি আমার পাইপকন্টে চাকা-ডিরের মধ্যে নির্মিত চাকাগুলি সঞ্চয় করে।

তারপরে, যে কোনও সময় আমি এইগুলির যে কোনও প্রয়োজনীয়তা ইনস্টল করার জন্য পাইপ করি, এটি চাকাগুলি থেকে এটি ইনস্টল করে, যা বেশ দ্রুত।


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

6

কীভাবে বিদ্যমান ভার্চুয়ালেনভ্রাপার প্রকল্পের জন্য পাইথন সংস্করণটি আপগ্রেড করবেন এবং একই নামটি রাখবেন

আমি ডগ Hellmann এর চমৎকার যে ব্যবহার করবেন জন্য একটি উত্তর যোগ করছি virtualenvwrapper বিশেষভাবে যেহেতু বিদ্যমান উত্তরগুলি আমার পক্ষে তা করে নি সে জন্য আমি কোনও উত্তর যুক্ত করছি।

কিছু প্রসঙ্গ:

  • আমি কিছু প্রকল্পগুলিতে কাজ করি যা পাইথন 2 এবং কিছুগুলি পাইথন 3; যখন আমি ব্যবহার করতে পছন্দ করি python3 -m venv, এটি পাইথন 2 পরিবেশকে সমর্থন করে না
  • আমি যখন কোনও নতুন প্রকল্প শুরু করি, তখন আমি ব্যবহার করি mkprojectযা ভার্চুয়াল পরিবেশ তৈরি করে, একটি খালি প্রকল্প ডিরেক্টরি তৈরি করে এবং এতে সিডি করি
  • workonপাইথন সংস্করণ নির্বিশেষে যে কোনও প্রকল্প সক্রিয় করতে আমি ভার্চুয়ালেনভ্রাপার কমান্ডটি ব্যবহার করে চালিয়ে যেতে চাই

গতিপথ:

ধরা যাক আপনার বিদ্যমান প্রকল্পটির নাম দেওয়া হয়েছে fooএবং এটি বর্তমানে পাইথন 2 চালাচ্ছে (mkproject -p python2 foo ) , যদিও কমান্ডগুলি একই সাথে 2.x থেকে 3.x, 3.6.0 থেকে 3.6.1, ইত্যাদি পর্যন্ত আপগ্রেড করা হোক না কেন আমি আপনাকেও ধরে নিচ্ছি ' সক্রিয় ভার্চুয়াল পরিবেশের ভিতরে বর্তমানে।

1. পুরানো ভার্চুয়াল পরিবেশটি নিষ্ক্রিয় করুন এবং অপসারণ:

$ deactivate
$ rmvirtualenv foo

মনে রাখবেন যে আপনি যদি হুকগুলিতে (যেমন, bin/postactivate) কোনও কাস্টম কমান্ড যুক্ত করেছেন তবে পরিবেশ অপসারণের আগে আপনার সেগুলি সংরক্ষণ করতে হবে।

২. একটি অস্থায়ী ডিরেক্টরিতে আসল প্রকল্পটি স্ট্যাশ করুন:

$ cd ..
$ mv foo foo-tmp

৩. নতুন ভার্চুয়াল পরিবেশ তৈরি করুন (এবং প্রকল্প ডির) এবং সক্রিয় করুন:

$ mkproject -p python3 foo

৪. প্রকৃত প্রকল্পের সাথে খালি উত্পন্ন প্রকল্প দিরকে প্রতিস্থাপন করুন, প্রকল্পের ডিয়ারে ফিরে যান:

$ cd ..
$ mv -f foo-tmp foo
$ cdproject

৫. নির্ভরতা পুনরায় ইনস্টল করুন, নতুন পাইথন সংস্করণ ইত্যাদি নিশ্চিত করুন:

$ pip install -r requirements.txt
$ python --version

যদি এটি সাধারণ ব্যবহারের ক্ষেত্রে হয় তবে আমি পিআর খোলার বিষয়টি ভ্যুচুয়ালেনভ্রাপার $ upgradevirtualenv/ এর মতো কিছু যুক্ত করতে বিবেচনা করব $ upgradeproject


1
হ্যাঁ. আমি এর মধ্য দিয়ে যেতে পেরেছি এবং বড় সমস্যা পেয়েছি ... একটি চেক ভাল হবে কারণ প্রথম পদক্ষেপটি একবারে মুছে ফেলা হবে (আমার বর্তমান জ্ঞানের কাছে)
ক্রিস ফ্রিসিনা

2

এই পদ্ধতির সবসময় আমার জন্য কাজ করে:

# First of all, delete all broken links. Replace  my_project_name` to your virtual env name
find ~/.virtualenvs/my_project_name/ -type l -delete
# Then create new links to the current Python version
virtualenv ~/.virtualenvs/my_project_name/
# It's it. Just repeat for each virtualenv located in ~/.virtualenvs

থেকে নেওয়া:


1

আমি আমার হোম ডিরেক্টরিটি একটি ম্যাক থেকে অন্য ম্যাকের (মাউন্টেন সিংহ থেকে ইয়োসেমাইটে) সরিয়ে নিয়েছি এবং পুরানো ল্যাপটপটি না হারিয়ে অবধি ভাঙ্গা ভ্যুচুয়ালেনভ সম্পর্কে বুঝতে পারি নি। আমি পাইথন ২.7-এর কাছে ভার্চুয়ালেনভ পয়েন্টটি ইনস্টল করেছি brewএবং যেহেতু ইয়োসেমাইট পাইথন ২.7 নিয়ে এসেছিল, আমি আমার ভার্চুয়ালেনভকে সিস্টেম পাইথনে আপডেট করতে চেয়েছিলাম। যখন আমি virtualenvবিদ্যমান ডিরেক্টরিতে শীর্ষে চলেছি তখন আমি OSError: [Errno 17] File exists: '/Users/hdara/bin/python2.7/lib/python2.7/config'ত্রুটি পাচ্ছিলাম । পরীক্ষা এবং ত্রুটির দ্বারা, আমি কয়েকটি লিঙ্কগুলি সরিয়ে এবং নিজেই আরও কয়েকটি স্থির করে এই সমস্যাটি নিয়ে কাজ করেছি। আমি অবশেষে এটিই করেছি (@ রোকালাইট যা করেছেন তার সমান, তবে সহজ):

cd <virtualenv-root>
rm lib/python2.7/config
rm lib/python2.7/lib-dynload
rm include/python2.7
rm .Python
cd lib/python2.7
gfind . -type l -xtype l | while read f; do ln -s -f /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/${f#./} $f; done

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


1

ওএস এক্স বা ম্যাকোসগুলিতে পাইথন 3 ইনস্টল ও আপগ্রেড করতে হোমব্রিউ ব্যবহার করে আমাকে python -m venv --upgrade ENV_DIRকাজ করার আগে প্রতীকী লিঙ্কগুলি মুছতে হয়েছিল ।

আমি নিম্নলিখিতগুলি আপগ্রেড_পিথন 3.শ এ সংরক্ষণ করেছি যাতে আমি এখন থেকে কীভাবে মাসগুলি মনে করি যখন আমাকে আবার এটি করা দরকার:

brew upgrade python3
find ~/.virtualenvs/ -type l -delete
find ~/.virtualenvs/ -type d -mindepth 1 -maxdepth 1 -exec python3 -m venv --upgrade "{}" \;

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


py.testকাজ করে না কারণ `~ / .virtualenvs / myenv / bin / python3.7 একটি সিমিলিংক নয়, তাই আপডেট হয় না।
অ্যাশ বার্লিন-টেলর

আহ আসলে, সমস্যাটি এখানে রয়েছে ~/.virtualenvs/myenv/.Pythonযা একটি সিমিলিংক।
অ্যাশ বার্লিন-টেলর

1

আপনি যদি ব্যবহার করছেন তবে pipenvআমি জানি না যে এটির জায়গায় কোনও পরিবেশের আপগ্রেড করা সম্ভব কিনা তবে কমপক্ষে ছোটখাটো সংস্করণ আপগ্রেডের জন্য এটি নতুন পরিবেশ তৈরি করার সময় স্ক্র্যাচ থেকে প্যাকেজগুলি পুনর্নির্মাণ না করা যথেষ্ট স্মার্ট বলে মনে হয়। যেমন, 3.6.4 থেকে 3.6.5 পর্যন্ত:

$ pipenv --python 3.6.5 install
Virtualenv already exists!
Removing existing virtualenv
Creating a v$ pipenv --python 3.6.5 install
Virtualenv already exists!
Removing existing virtualenv
Creating a virtualenv for this project
Using /usr/local/bin/python3.6m (3.6.5) to create virtualenv
Running virtualenv with interpreter /usr/local/bin/python3.6m
Using base prefix '/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/python3.6
Also creating executable in /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD
Installing dependencies from Pipfile.lock (84dd0e)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 47/47  00:00:24
To activate this project's virtualenv, run the following:
 $ pipenv shell
$ pipenv shell
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/activate
bash-3.2$ . /Users/dmoles/.local/share/virtualenvs/autoscale-aBUhewiD/bin/activate
(autoscale-aBUhewiD) bash-3.2$ python
Python 3.6.5 (default, Mar 30 2018, 06:41:53) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>>

অসাধারণ! এই রত্নটির জন্য ধন্যবাদ
ময়ুর পাতিল

1

আমি কেবল পরিষ্কার করতে চাই, কারণ কিছু উত্তর উল্লেখ করে venvএবং অন্যরা উল্লেখ করে virtualenv

-pবা --pythonপতাকাটির ব্যবহার সমর্থিত virtualenv, তবে চালু নয় venv। যদি আপনার একাধিক পাইথন সংস্করণ থাকে এবং আপনি কোনটি দিয়ে তৈরি করতে চান তা নির্দিষ্ট করতে চান venv, কমান্ড লাইনে এটি করুন:

malikarumi@Tetuoan2:~/Projects$ python3.6 -m venv {path to pre-existing dir you want venv in}

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


1

পদক্ষেপ 1: প্রয়োজনীয়তা হিমায়িত করুন এবং বিদ্যমান এনভির সাথে ব্যাক আপ নিন

pip freeze > requirements.txt
deactivate
mv env env_old

পদক্ষেপ 2: পাইথন ৩.7 ইনস্টল করুন এবং ভাইরাল পরিবেশ সক্রিয় করুন

sudo apt-get install python3.7-venv
python3.7 -m venv env
source env/bin/activate
python --version

পদক্ষেপ 3: প্রয়োজনীয়তা ইনস্টল করুন

sudo apt-get install python3.7-dev
pip3 install -r requirements.txt

0

সমস্যাযুক্ত সবার জন্য

ত্রুটি: কমান্ড '[' / ব্যবহারকারী / আমার / সাইট / সাইট / ভেনভি 3 / বিন / পাইথন 3 ',' -আইএম ',' শিষ্টপীপ ',' --আপগ্রেড ',' --default- পিপ ']' শূন্য-শূন্য ফিরে এসেছে প্রস্থান স্থিতি 1।

আপনাকে পাইথন 3.6-ভেনভ ইনস্টল করতে হবে

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