আমি কি একটি ভার্চুয়ালেনভ স্থানান্তর করতে পারি?


93

এই প্রশ্নটি নকল নয়।

এটি কেবল ভার্চুয়াল পরিবেশের নাম পরিবর্তনের জন্য নয়, প্রকৃতপক্ষে পৃথক ব্যবহারকারীর ডিরেক্টরি সহ এটি একটি ভিন্ন ডিরেক্টরিতে স্থানান্তরিত করার জন্য সম্পর্কিত।

এটি কেবল ভার্চুয়াল পরিবেশের নামকরণের মতো নয়, বিশেষত লোকুয়ালেনভগুলির সাথে অপরিচিত লোকদের কাছে।

যদি আমি কোনও ভার্চুয়ালেনভ তৈরি করি এবং আমি এটিকে অন্য ফোল্ডারে স্থানান্তরিত করি, তবে কি এটি এখনও কার্যকর হবে?

$ virtualenv -p /usr/bin/python3 /home/me/Env/my-python-venv
$ source Env/my-python-venv/bin/activate
(my-python-venv) $ 

... সেদিন পরে, ভার্চুয়াল পরিবেশটি সরানো হয়েছে ...

(my-python-venv) $ deactivate
$ mkdir -p /home/me/PeskyPartyPEnvs
$ mv /home/me/Env/my-python-venv /home/me/PeskyPartyPEnvs/

প্রশ্ন:

এই কাজ করবে?

$ source /home/me/PeskyPartyPEnvs/my-python-venv/bin/activate
(my-python-venv) $ /home/me/PeskyPartyPEnvs/my-python-venv/bin/pip3 install foaas

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

আমি কি দুঃখ ছাড়াই ঠিক mvএমন কি পারি virtualenv? আমি দুঃখ এড়াতে চাই না

উত্তর:


70

হ্যাঁ. এটি একই প্ল্যাটফর্মে স্থানান্তরিত করা সম্ভব। আপনি --relocatableএকটি বিদ্যমান পরিবেশে ব্যবহার করতে পারেন ।

থেকে --help:

--relocatable - একটি বিদ্যমান গুণমানের পরিবেশকে স্থানান্তরযোগ্য করে তুলুন। এটি স্ক্রিপ্টগুলি স্থির করে এবং সমস্ত .pth ফাইলকে আপেক্ষিক করে তোলে।

যাইহোক, এই পরিবর্তন বলে মনে হচ্ছে না activateস্ক্রিপ্ট, এবং বদলে শুধুমাত্র পরিবর্তন pip*এবং easy_install*স্ক্রিপ্ট। ইন activateস্ক্রিপ্ট, $VIRTUAL_ENVএনভায়রনমেন্ট ভেরিয়েবল মূল যেমন হার্ডকোডেড /path/to/original/venv$VIRTUAL_ENVপরিবর্তনশীল সেট করতে ব্যবহৃত হয় PATH, তাই এটি অর্ডার ডাকতে নতুন অবস্থানের উপর ভিত্তি করে পরিবর্তন করা আবশ্যক, আপনার সক্রিয় পরিবেশ খুব pythonএবং pipইত্যাদি সুনির্দিষ্ট পাথ ছাড়াই।

এই সমস্যাটি সমাধানের জন্য, আপনি স্ক্রিপ্টে $VIRTUAL_ENVপরিবেশের পরিবর্তনশীল পরিবর্তন করতে পারেন activate(উদাহরণস্বরূপ ব্যবহার করে sed) এবং সমস্ত কিছু করা ভাল।

ব্যবহারের একটি উদাহরণ:

$ cd ~/first
$ virtualenv my-venv
$ grep 'VIRTUAL_ENV=' my-venv/bin/activate
VIRTUAL_ENV="/home/username/first/my-venv"
$ virtualenv --relocatable my-venv
Making script my-venv/bin/easy_install relative
Making script my-venv/bin/easy_install-2.7 relative
Making script my-venv/bin/pip relative
Making script my-venv/bin/pip2 relative
Making script my-venv/bin/pip2.7 relative
### Note that `activate` has not been touched
$ mkdir ~/second
$ mv my-venv ~/second
$ cd ~/second
$ grep 'VIRTUAL_ENV=' my-venv/bin/activate
VIRTUAL_ENV=/home/username/first/my-venv
### (This variable hasn't been changed, it still refers to the old, now non-existent directory!)
$ sed -i -e 's|username/first|username/second|' my-venv/bin/activate
## sed can be used to change the path.
## Note that the `-i` (in place) flag won't work on all machines. 
$ source my-venv/bin/activate 
(my-venv) $ pip install foass
...
(my-venv) $ python 
[...]
> import foass

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


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

7
"--Relocatable বিকল্পটিতে বর্তমানে বেশ কয়েকটি সমস্যা রয়েছে এবং এটি সমস্ত পরিস্থিতিতে কাজ করার গ্যারান্টিযুক্ত নয় the বিকল্পটি ভ্যুচুয়ালেনভের ভবিষ্যতের সংস্করণে
অবহেলা

4
আমি এটি উইন্ডোতে চেষ্টা করেছি এবং ত্রুটিটি সমস্ত স্ক্রিপ্টগুলি (* .পি, * .বাট, * .ps1) Scriptsদির ( bin* নিক্সের সমতুল্য ) এর তালিকাভুক্ত করে এবং এমন কিছু বলে যা activate.ps1 cannot be made relative (it's not a normal script that starts with #!c:\..python.exe.মূলত এটি অভিযোগ করে যে ফাইলটিতে হ্যাশ-ব্যাং রয়েছে শিরোনামটি বর্তমান ভার্চুয়ালেনভের অজগর নয় ex আমি সেই পোষ স্ক্রিপ্টটিতে দেখেছি এবং এটি ইতিমধ্যে তার নিজস্ব পথটি আবিষ্কার করেছে - দুর্দান্ত। অন্যান্য স্ক্রিপ্টগুলির মধ্যে কয়েকটি পাথের উপর নির্ভর করে না (যেমন ডিএক্টিভেট.ব্যাট) সুতরাং সংক্ষেপে, এটি কাজ করে।
দাভোস

4
@ নাথানবাসানিজ বার্তাটিকে activate.ps1 cannot be made relativeউপেক্ষা করা যেতে পারে কারণ স্ক্রিপ্টটি ইতিমধ্যে আপেক্ষিক। উইন্ডোজে বার্তাটি সহায়ক নয়, কারণ #!কোন অ্যাপ্লিকেশনটি চালানো উচিত তা শেলকে জানাতে স্ক্রিপ্টগুলি লিনাক্সের মতো নির্দেশনা ব্যবহার করে না। activate.batপরিবর্তিত করে না, কিন্তু এটা (অন্তত উইন্ডোজ 10, কলিং ব্যবহার করা হয় না activateলঞ্চ সর্বোকৃষ্ট স্ক্রিপ্ট) তাই কোনও আমি সম্পাদনা কোনো স্ক্রিপ্ট প্রয়োজন ছিল না। যে সমস্যাটি হ'ল pip.exeঅজগরকে হার্ড কোডিং করার পথ রয়েছে এবং তার একটি হেক্স-সম্পাদক দিয়ে সম্পাদনা করা দরকার, বা কেবল একটি পুনরায় ইনস্টল করা উচিত।
দাভোস

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

19

পাইথন ৩.৩+ এর জন্য (নতুন venvঅন্তর্নির্মিত মডিউল সহ)

সংক্ষিপ্ত উত্তর (সংস্করণ নির্বিশেষে):

  • ভার্চুয়াল পরিবেশে সরানোর কোনও পরিষ্কার, সরাসরি উপায় নেই
  • শুধু পুনরায় তৈরি করুন, এটি সহজ !!


দীর্ঘ উত্তর:

পাইথন v3.3 হিসাবে, virtualenvনামের একটি বিল্ট-ইন মডিউল হয়ে গেছে venv

--relocatableবিকল্প অন্যান্য উত্তর উল্লেখিত মধ্যে অন্তর্ভুক্ত করা যাবে না venv, এবং বর্তমানে কোন ভাল, নিরাপদ উপায় যে আমি হয় নামান্তর করতে সচেতন আছি বা পাইথন ভার্চুয়াল পরিবেশ নূতন স্থান নেই।

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

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

দ্রষ্টব্য: এই উত্তরে এটি virtualenvবরং মনোযোগ নিবদ্ধ করে venv। অনুবাদ করার জন্য নীচে দেখুন।



venvবনাম। পুরানো virtualenvকমান্ড সিনট্যাক্স

কমান্ডটি venvহ'ল:

python -m venv

virtualenvমূলত নয় , যা মূল প্যাকেজে কমান্ড হিসাবে ইনস্টল করে। "পাইথন" যেখানে আপনাকে বোঝায় যে আপনার অজগর নির্বাহযোগ্য, যা বিভিন্ন ধরণের জিনিস হতে পারে:

  1. python
  2. pyবা এর py -3.7অনুরূপ ( পাইথন ৩.৩+ উইন্ডোজের জন্য পাইথন লঞ্চার এবং কেবলমাত্র এই মুহুর্তে উইন্ডোজ)
  3. python3 (লিনাক্স পরিবেশের জন্য কনভেনশন যা অজগর 2 এবং 3 দ্বৈত ইনস্টল করে)
  4. যদি আপনার সমস্যা হয়, আপনি চালাতে চান অজগর নির্বাহযোগ্যর জন্য পরম পথটি ব্যবহার করুন: যেমন c:\program files\python37\python.exe

আপনি যদি নিশ্চিত হন না কোন সংস্করণটি চলছে, আপনি সর্বদা python --versionএটি খুঁজে বের করতে পারেন ।



ভার্চুয়াল পরিবেশটি কীভাবে পুনরায় তৈরি করা যায়

ভার্চুয়াল পরিবেশ তৈরি / পুনরুদ্ধার করা সহজ এবং আপনি তাদের সাথে কিছুটা সময় কাজ করার পরে এটি দ্বিতীয় প্রকৃতিতে পরিণত হওয়া উচিত। এই প্রক্রিয়াটি প্রথমার্ধে আপনার স্ক্রিপ্টটি প্যাকেজ হিসাবে (তার নির্ভরতার সাথে) বিতরণ করতে এবং আপনি পরবর্তী স্কুলে স্ক্রিপ্ট / প্যাকেজ ইনস্টল করার জন্য কী করবেন তা মিরর করে।

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

  1. ব্যবহারের python --versionভার্চুয়াল পরিবেশের সঙ্গে পাইথন কি সংস্করণ এটি ব্যবহার আছে কিনা সক্রিয় হয়েছে।

    • এটি স্পষ্টতার জন্য - আপনি পাইথন সংস্করণটি বিভিন্ন কারণে - কমপক্ষে সর্বশেষতম প্যাচ সংস্করণে আপডেট করতে চাইতে পারেন
    • উদাহরণস্বরূপ, যদি বিদ্যমান ভেনভ পাইথন v3.7.4 ব্যবহার করে তবে এখন v3.7.6 বাইরে রয়েছে - পরিবর্তে v3.7.6 ব্যবহার করুন, যার মধ্যে কেবল অ-ব্রেকিং সুরক্ষা এবং বাগ সংশোধন করা উচিত।
  2. ব্যবহার করুন python -m pip freeze > requirements.txtবর্তমান প্যাকেজ নির্ভরতা তালিকা তৈরি করতে এবং তাদের পুরা requirements.txtফাইল। এই কমান্ডটি লিনাক্স বা গিট ব্যাশে নিশ্চিতভাবে কাজ করে - উইন্ডোজের পাওয়ারশেল বা কমান্ড লাইন সম্পর্কে 100% নিশ্চিত নয়।

এখন একটি নতুন ভার্চুয়াল পরিবেশ তৈরি করুন এবং তারপরে পুরানোটির থেকে নির্ভরতা যুক্ত করুন।

  1. আপনার নতুন ভেন্ট তৈরি করুন।

    • নিশ্চিত করুন যে আপনি অজগরটির সঠিক সংস্করণ ব্যবহার করছেন যা আপনি ভেন্টে ইনস্টল করতে চান।
    • আপনি যদি চান এটি একেবারে একই পাইথন সংস্করণ হতে পারে:
      • বর্তমান ভার্চুয়াল পরিবেশ থেকে সরাসরি অজগর চালান (এটি সক্রিয় করে) এবং কেবল pythonকমান্ড হিসাবে ব্যবহার করুন
      • অথবা python.exeভার্চুয়াল এনভায়রনমেন্ট ফোল্ডারের সাথে একটি নিখুঁত পাথ ব্যবহার করুন
    • কমান্ডে নতুন ভেনভ ফোল্ডার প্রবেশের জন্য:
      • হয় কাঙ্ক্ষিত চূড়ান্ত ফোল্ডার অবস্থানটিতে একটি নিখুঁত বা আপেক্ষিক পাথ যুক্ত করুন।
      • python -m venv my_new_venvনতুন my_new_venvফোল্ডারে বর্তমান ওয়ার্কিং ডিরেক্টরিতে একটি নতুন ভার্চুয়াল পরিবেশ তৈরি করতে ব্যবহার করুন ।
      • ভেন্ভ ফোল্ডারের নাম ভেন্ভের নাম হবে (এটি সক্রিয় হওয়ার পরে প্রম্পটে কী প্রদর্শিত হবে)।
  2. requirements.txtফাইল থেকে আপনার নির্ভরতা ইনস্টল করুন।

    • python -m pip install -r requirements.txt

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

দ্রষ্টব্য, প্যাকেজটি ইনস্টল করার জন্য নির্দিষ্ট স্থানটি যদি আপনাকে কখনও দেখা প্রয়োজন হয় তবে তা ব্যবহার করুন:

  • python -m pip list -v
  • -vঅথবা "বাগাড়ম্বরপূর্ণ" বিকল্পটি প্রতিটি প্যাকেজ ইনস্টল করা হয়, পথ এতে ইনস্টল করা সহ সম্পর্কে কিছু অতিরিক্ত তথ্য যোগ করা হবে। এই সোজা নিশ্চিত করুন যে আপনি রাখছেন ভার্চুয়াল, ব্যবহারকারী এবং সিস্টেম ইনস্টল প্যাকেজ করতে দরকারী।

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


ভেনপ পাইপ রাজ্যের অনুলিপি করার কোনও উপায় নেই , অর্থাত্ পিপ দিয়ে সমস্ত গ্রন্থাগার পুনরায় ডাউনলোড না করে?
আইয়াদো

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

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

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

4
আপনি আপনার সমস্ত প্যাকেজগুলি দিয়ে চাকা তৈরি করতে পারবেন pip wheel . -w wheelsএবং তারপরে নতুন ভার্চুয়াল পরিবেশে প্যাকেজগুলি পুনরায় ইনস্টল করতে পারেনpip install --no-index --find-links /path/to/wheels/ -r requirements.txt
np8

7

--relocatableআর্গুমেন্ট প্রাপ্ত করতে virtualenvপ্রদর্শিত হয় আপনি এই কাজ করতে পারে।


//, এটি কি কেবল আপেক্ষিক পাথের উপর নির্ভর করে, বা এটি অন্যথায় অন্যভাবে বাঁদর করে?
নাথান বাসানিজ 5'15

4
--relocatable কেবল বিদ্যমান ভার্চুয়াল পরিবেশে কাজ করে। virtualenv --relocatable my-python-venvপরিবেশ ইতিমধ্যে বিদ্যমান পরে চালান ।
ইলিশচার

4
থেকে --help: This fixes up scripts and makes all .pth files relative। না এটি প্ল্যাটফর্মটি স্বাধীন লাইব্রেরি তৈরি করবে না। আপনি যদি এটি অন্য একটি প্ল্যাটফর্মে নিয়ে যেতে চান তবে আপনাকে স্থানীয় অজগরটির উপর ভিত্তি করে এটি পুনরায় ইনস্টল করতে হবে।
ইলিশচার

4
পাইথন 3 ভেনভ মডিউল এই পতাকাটি সমর্থন করে না
নেলসন

7

কিন্তু হায়:

না, আপনি সহজভাবে পারবেন না mv। কর্মক্ষেত্র রয়েছে তবে এটি পুনরায় ইনস্টল করা সহজ হতে পারে easier

(my-python-venv)$ /home/me/PeskyPartyPEnvs/pip3 install foaas
zsh: /home/me/PeskyPartyPEnvs/pip3: bad interpreter: /home/me/Env/my-python-venv/bin/python3: no such file or directory
(my-python-venv)$ deactivate
$ 

... enterহতাশায় অনেক চাপ দেয় এবং নিম্নলিখিত কাজগুলি করে

$
$
$ pip3 search foaas

এটি থেকে না থাকলে my-python-venv, দু: খ প্রকাশ।

করতে চান mvআপনার virtualenvএবং এটি ব্যবহার, অন্যথায় অপরিবর্তিত?

সংক্ষিপ্ত উত্তর:

আমি বোরোমিরকে এটি বলতে দেব, যাতে সে এটি পরিষ্কার করে দিতে পারে:

ঠিক আছে, তুমি পারবে না


4
যদি না আপনি গৌরবগ্রহ পেতে চান এবং এটি যথাযথভাবে সংশোধন করতে চান: এটি বিনের বাইনারিগুলির লিঙ্কগুলি যা চলাচলের সমস্যা তৈরি করে। আপনি যদি জানেন যে আপনি কোথা থেকে এসেছেন তবে আপনি find bin -type f -exec ex -sc "%s,${FROM},${PWD},g|x" {} \;ধরে নিতে পারেন যে আপনার বেন এবং লিব আপনার বর্তমান ভেন্ট ফোল্ডারে রয়েছে ing আমি প্রচুর পাইপ প্যাকেজ ইনস্টল করে পাইথন 3 ভার্চুয়াল এনভিএসকে অনুলিপি এবং সরানোর দ্রুত এবং নোংরা উপায় হিসাবে এটি ব্যবহার করি।
পল হিপ্প

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

4
@ ডেভোস - পেরেলোক্যাটেবল আমার পক্ষে কাজ করেনি তবে আমি বাইনারি হ্যাক করে নিয়মিত পাইথন 3 ভেন্টগুলি সরিয়ে নিয়েছি এবং এখনও পর্যন্ত আমার কোনও সমস্যা হয়নি।
পল হিপ্প

4
আমি ইঙ্গিত দিচ্ছিলাম যে আপনার পরিবর্তিত হওয়া উচিত অন্যরকম (যেমন আপনার নয়) জবাব হিসাবে গ্রহণ করা উচিত সম্ভবত লোকেরা বেছে নেওয়া একটি: ডি
দাভোস

4
প্রশ্নটি ছিল "আমি কি খুব সহজেই mvএকটি ভেন্ভ করতে পারি ?", এবং উত্তরটি হ'ল "না আপনি কেবল পারেন না mv, সেখানে কাজকর্ম রয়েছে তবে এটি পুনরায় ইনস্টল করা সহজ হতে পারে"। যদি এটি শীর্ষস্থানীয় উত্তর ছিল তবে এটি আমার এবং অন্যদের কিছুটা সময় সাশ্রয় করবে।
নিকোলে

5

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

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

নথিটিতে উল্লেখ রয়েছে :

প্রতিটি ভার্চুয়ালনেভের কাছে কঠোর কোডযুক্ত পথের তথ্য রয়েছে,

উদাহরণস্বরূপ, আপনি যদি চালনা করেন setvirtualenvprojectতবে আপনি চালানোর পরে এটি সঠিক ডিরেক্টরিতে স্যুইচ করতে সক্ষম হবে না workon ...সেই ক্ষেত্রে আপনাকে ম্যানুয়ালি এটি ঠিক করতে হবে।

সাধারণভাবে পাইথন ইন্টারপ্রেটার ফাইল এবং আপনার প্রয়োজনীয় প্যাকেজগুলির সাথে প্রয়োজনীয় ডিরেক্টরিগুলির চেয়ে একটি ভার্চুয়ালেনভই কিছুটা বেশি।


3

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

করার পরে virtualenv --relocatable yourenvআপনাকে VIRTUAL_ENVডিরেক্টরিটি সরানোর সময় আপনার ভেরিয়েবল পরিবর্তন করতে হবে, সুতরাং আপনি যদি নিজে নিজে এটি পরিবর্তন করতে না চান তবে এটি ব্যবহার করুন।

#!/bin/bash \n 
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
EXISTING=$(grep 'VIRTUAL_ENV=' bin/activate)  
NEWDIR=VIRTUAL_ENV=\"$DIR\"
sed -i -e "s|$EXISTING|$NEWDIR|" bin/activate
source bin/activate

আমি আসা করি এটা সাহায্য করবে.


1

হ্যা, তুমি পারো! (ইন windows)

কর্মক্ষেত্রটি সহজ, কেবল আপনার ভার্চুয়াল পরিবেশটি যে কোনও জায়গায় সরিয়ে নিয়ে তারপরে activate.batভিতরে সম্পাদনা করুন scripts\:

  1. ভার্চুয়াল পরিবেশে কাঙ্ক্ষিত ডিরেক্টরিতে যান

  2. ডান-ক্লিক করুন এবং সম্পাদনা activate.batঅবস্থিত venv_folder\scripts

  3. এর VIRTUAL_ENVথেকে পরিবর্তনশীল পরিবর্তন করুন:

     set VIRTUAL_ENV=C:\old_directory\venv_name
    

    মধ্যে

     set VIRTUAL_ENV=C:\new_directory\venv_name
    
  4. সম্পাদিত ব্যাচ ফাইলটি সংরক্ষণ করুন এবং এটি চালিয়ে যান!

দ্রষ্টব্য: আমার সমাধানটিতে windows usersনতুন ভার্চুয়াল পরিবেশ স্থাপনের কাজ করা উচিত এবং সংরক্ষণ করা উচিত , আমি সন্দেহ করি যেহেতু .batএটি অন্যান্য অপারেটিং সিস্টেমে কাজ করবেMS-DOS


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