ভার্চুয়ালেনভের সাথে পাইপ ব্যবহার করার সময় কীভাবে "অনুমতি অস্বীকৃত" এড়ানো যায়


95

আমি pipউবুন্টু মেশিনে ভার্চুয়াল পরিবেশে পাইথন প্যাকেজ মোতায়েন করার চেষ্টা করি , তবে অনুমতি-সংক্রান্ত সমস্যার মুখোমুখি। উদাহরণ স্বরূপ:

(TestVirtualEnv)test@testServer:~$ pip install markdown2

দ্বারা সমাপ্ত:

ত্রুটি: '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py' তৈরি করতে পারেনি: অনুমতি অস্বীকার করা হয়েছে

আমি পারি না sudo, যেহেতু এটি বিশ্বব্যাপী প্যাকেজটি ইনস্টল করবে, এবং ভার্চুয়াল পরিবেশের মধ্যে নয়। আমি chownএড site-packages; lsশো শুধুমাত্র এর সাথে সম্পর্কিত ডিরেক্টরি easy_install, pipএবং setuptools, এবং Markdown এর সাথে সম্পর্কিত কিছু নেই।

pipঅনুমতি সম্পর্কিত ত্রুটিগুলির মুখোমুখি না করে কীভাবে ভার্চুয়াল পরিবেশে প্যাকেজ স্থাপন করা যায় ?


কেবল স্পষ্ট করে বলতে: আপনি কি এই ভার্চুয়ালেনভ দিয়ে তৈরি করেছেন sudo?
সেবাস্তিয়ান_ও

@ সেবাস্তিয়ান_ও: আমি বিশ্বাস করি আমি করেছি। আমি নিশ্চিত হয়ে একজনকে পুনরায় তৈরি করব।
আর্সেনী মোরজেনকো

4
তাহলে এই সমস্যা হতে পারে। ছাড়া একটি ভার্চুয়ালেনভ তৈরি করার চেষ্টা করুন sudo
সেবাস্তিয়ান_ও

4
@ সেবাস্তিয়ান_ও: আমি ছাড়া ভার্চুয়াল পরিবেশ তৈরি করেছি sudo। আসলে, প্যাকেজটি এখন সঠিকভাবে ইনস্টল করে। দয়া করে, আপনি কি আপনার মন্তব্যে কোনও উত্তর প্রচার করতে পারেন যাতে আমি তা গ্রহণ করতে পারি?
আর্সেনী মরজেনকো

4
এছাড়াও যদি আপনি বিভিন্ন ব্যবহারকারীর মধ্যে স্যুইচ করে থাকেন তবে নিশ্চিত হয়ে নিন যে আপনি যে ব্যবহারকারীর (অথবা লেখার অ্যাক্সেস রয়েছে) virtualenvডিরেক্টরি মালিকানাধীন রয়েছেন , কারণ আপনি virtualenvঅন্য ব্যবহারকারীর সাথে সক্রিয় করতে পারেন তবে এটি আপনাকে কোনও প্যাকেজ ইনস্টল করতে দেয় না এবং অনুমতি অ্যাক্সেস দেয় give
Andrius

উত্তর:


109

virtualenvঅনুমতি হিসাবে সমস্যা দেখা দিতে পারে যখন আপনি virtualenvহিসাবে তৈরি করেন sudoএবং তারপরে এটি ছাড়া পরিচালনা sudoকরেন virtualenv

যেহেতু আপনার প্রশ্ন মন্তব্যে খুঁজে পাওয়া যায় নি, সমাধান এখানে হয় তৈরিvirtualenv ছাড়া sudoপাবে কাজ ছাড়া (ESP। লিখন) এটা sudo


4
যদি আমি এটিকে / অপ্টে তৈরি করতে চাই যার জন্য সুডোর প্রয়োজন হয় তবে আমি মনে করি ভার্চুয়ালেনভ সুডো ছাড়া ইনস্টল করবে না।
উমাইর এ।

7
@ সেবাস্তিয়ান_ও আমার মনে হয় আমি আপনাকে ভালোবাসি
নোবনিবব লিটলুন ২ ''45 এ 23

4
কিভাবে virtualenvsudo ছাড়া তৈরি করবেন ?
টান

4
আপনি যদি এর সাথে sudoভার্চুয়ালেনভ তৈরি করে থাকেন তবে পুনরায় কাজ না করে কীভাবে সহজেই এটি ঠিক করা যায় তার জন্য @ ওয়েভিংটফটের উত্তর দেখুন
ডেভিড এ

106

সমাধান:

আপনি যদি ভার্চুয়ালেনভকে মূল হিসাবে তৈরি করেন তবে নিম্নলিখিত কমান্ডটি চালান:

sudo chown -R your_username:your_username path/to/virtuaelenv/

এটি সম্ভবত আপনার সমস্যার সমাধান করবে।

চিয়ার্স


4
এটি আমার পক্ষে কাজ করেছিল (শাউন / ওএসআর / লোকাল / লিবি / পিপিথন ৩.৪), আমি মনে করি না যে আমি রুট হিসাবে কোনও ভার্চুয়ালেনভ তৈরি করেছি, আমি আসলে পাইথন ৩৪.৪ কে মূল হিসাবে ইনস্টল করেছিলাম। আমি এখনও পরীক্ষা করছি, তবে আপনি কি মনে করেন যে আমি এই সমাধানটি নিয়ে আরও কোনও সমস্যার মধ্যে চলে যাব, বা এই শাবনটি বেশিরভাগ ত্রুটিগুলি সমাধান করবে?
ntk4

4
আপনি কীভাবে খুঁজে পাবেন যে আপনি ভার্চুয়ালেনভ বা অজগরকে মূল হিসাবে তৈরি করেছেন?
এ__

এটি আমার সমস্যা সমাধান করেছে। আমি ওপি হিসাবে একই পরিস্থিতিতে ছিলাম যে আমার / অপ্ট / ডিরেক্টরিতে ভার্চুয়াল পরিবেশ তৈরি করা দরকার যা আমি sudo সুবিধাগুলি ছাড়াই করতে পারি না।
স্যার_চকলেট_সোপ

6

আমার ক্ষেত্রে, আমি ব্যবহার করছিলাম mkvirtualenv, তবে এটি পাইনি যে আমি পাইথন 3 ব্যবহার করব। আমি এই ত্রুটি পেয়েছি:

mkvirtualenv hug
pip3 install hug -U

....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied

অজগর 3 নির্দিষ্ট করার পরে এটি কাজ করেছিল:

mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U

5

আমি sudo ব্যবহার করে আমার ভার্চুয়ালেনভ তৈরি করিনি। সুতরাং সেবাস্তিয়ান এর উত্তর আমার উপর প্রযোজ্য হয়নি। আমার প্রকল্প বলা হয় utils। আমি utilsডিরেক্টরি পরীক্ষা করে দেখেছি:

-rw-r--r--   1 macuser  staff   983  6 Jan 15:17 README.md
drwxr-xr-x   6 root     staff   204  6 Jan 14:36 utils.egg-info
-rw-r--r--   1 macuser  staff    31  6 Jan 15:09 requirements.txt

যেমন আপনি দেখতে পাচ্ছেন, utils.egg-infoএটি মালিকানাধীন rootনয় macuser। এ কারণেই এটি আমাকে permission deniedত্রুটি দিচ্ছিল । /Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-linkএটি rootপাশাপাশি তৈরি করার সাথে সাথে আমাকেও সরিয়ে ফেলতে হয়েছিল । pip install -e .এগুলি অপসারণের পরে আমি আবার করেছি এবং এটি কার্যকর হয়েছে।


3

আপনি যদি রুট ব্যবহার করে ভার্চুয়াল পরিবেশ তৈরি করেন তবে এই আদেশটি ব্যবহার করুন

sudo su

এটি আপনাকে মূল অ্যাক্সেস দেবে এবং তারপরে এটি ব্যবহার করে আপনার ভার্চুয়াল পরিবেশ সক্রিয় করবে

source /root/.env/ENV_NAME/bin/activate

1

আপনি পিপ ব্যবহার করার আগে ভার্চুয়াল পরিবেশ সক্রিয় করেন নি।

এটি দিয়ে চেষ্টা করুন:

$(your venv path) . bin/activate

এবং তারপরে আপনার মূল ফোল্ডারে পিপ-র প্রয়োজনীয়তা.টেক্সট ব্যবহার করুন


1

আমি একটি বিদ্যমান ভার্চুয়াল পরিবেশের মধ্যে একটি নতুন ভেনভ তৈরি করার পরে এটি (দুর্ঘটনাক্রমে) ঘটেছে। এটি নির্ণয়ের একটি সহজ উপায় pythonহ'ল এটি কোথায় সাদৃশ্যযুক্ত, অর্থাত রান করুন:

ls -l venv/bin/python

এবং নিশ্চিত করুন যে এটি উপযুক্ত পাইথন বাইনারিটির দিকে নির্দেশ করে points বেশিরভাগ সিস্টেমে এটি হবে /usr/bin/pythonবা /usr/bin/python3। যখন এটি একটি বিদ্যমান ভার্চুয়াল পরিবেশের দিকে নির্দেশ করে তবে এটি এমন কিছু হবে /home/youruser/somedir/bin/python। এটি যদি ভেন্ভের সাথে পুনরায় তৈরি করার পরামর্শ দেওয়ার চেয়ে আমি পরে পরামর্শ দিই তবে আপনি নিশ্চিত হন যে আপনি কোনও বিদ্যমান ভার্চুয়ালেনভের (অর্থাৎ রান deactivate) "ভিতরে" নন are


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

0

ভার্চুয়ালেনভ তৈরি করার সময় আপনি sudo ব্যবহার করে ডিরেক্টরিটি মূল সুবিধার সাথে তৈরি করা হয় S সুতরাং আপনি যখন নন-সুডো ব্যবহারকারীর সাথে কোনও প্যাকেজ ইনস্টল করার চেষ্টা করবেন তখন আপনার এটিতে ইনস্টল করার অনুমতি থাকবে না। সুতরাং সর্বদা sudo ছাড়া virtualenv তৈরি করুন এবং sudo ছাড়া ইনস্টল করুন।

আপনি বিশ্বজুড়ে পাইথন ইনস্টল করা প্যাকেজগুলি ভ্যুচুয়ালেনভেও অনুলিপি করতে পারেন।

cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/

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