পাইথনের সাইট-প্যাকেজ ডিরেক্টরি কী?


119

site-packagesপাইথন সম্পর্কিত বিভিন্ন নিবন্ধে ডিরেক্টরিটি উল্লেখ করা হয়েছে। এটা কি? এটি কিভাবে ব্যবহার করতে?

উত্তর:


72

site-packagesহয় গন্তব্যের ডিরেক্টরি ম্যানুয়ালি নির্মিত পাইথন প্যাকেজ। আপনি যখন উত্স থেকে পাইথন প্যাকেজগুলি তৈরি এবং ইনস্টল করেন ( ডিস্টুয়েলগুলি ব্যবহার করে , সম্ভবত নির্বাহ করে python setup.py install), আপনি site-packagesডিফল্টরূপে ইনস্টলড মডিউলগুলি খুঁজে পাবেন ।

মানক অবস্থান রয়েছে:

  • ইউনিক্স (খাঁটি) 1 :prefix/lib/pythonX.Y/site-packages
  • ইউনিক্স (বিশুদ্ধ নয়): exec-prefix/lib/pythonX.Y/site-packages
  • উইন্ডোজ: prefix\Lib\site-packages

1 খাঁটি মানে মডিউলটি কেবল পাইথন কোড ব্যবহার করে। অ-খাঁটিতে সি / সি ++ কোডও থাকতে পারে।

site-packagesপাইথন অনুসন্ধানের পথের ডিফল্ট অংশ , সুতরাং সেখানে ইনস্টল হওয়া মডিউলগুলি পরে সহজেই আমদানি করা যায়।


দরকারী পড়া


10
অবস্থান হতে ঘটেছে /usr/local/lib/python3.6/site-packagesউবুন্টু উপর
Mehmet

আমি এর সাথে জেন্টু সিস্টেমগুলি দেখেছি lib64!
মাল্টিপলমোনমিয়ালস

2
কনডা বা পাইপ সাইট-প্যাকেজগুলিতে ইনস্টল করে, বা কেবল ম্যানুয়ালি নির্মিত প্যাকেজগুলিতে?
মনিকা হেডনেক

2
সত্যই আকর্ষণীয় প্রশ্ন: কেন এই ডিরেক্টরি? কেন শুধু ইনস্টল করবেন না /usr/lib/python3.6?
টর্স্টেন ব্রোঞ্জার

40

আপনি যখন --userপাইপের সাহায্যে বিকল্প ব্যবহার করেন, প্যাকেজটি বিশ্বব্যাপী ফোল্ডারের পরিবর্তে ব্যবহারকারীর ফোল্ডারে ইনস্টল হয়ে যায় এবং অ্যাডমিন সুবিধার সাথে আপনার পিপ কমান্ডটি চালানোর প্রয়োজন হবে না।

ব্যবহারকারীর প্যাকেজ ফোল্ডারের অবস্থানটি ব্যবহার করে পাওয়া যাবে:

python -m site --user-site

এটি এমন কিছু মুদ্রণ করবে:

C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages

আপনি যখন --userপাইপের সাহায্যে বিকল্প ব্যবহার করবেন না , প্যাকেজটি প্রদত্ত গ্লোবাল ফোল্ডারে ইনস্টল হয়ে যাবে:

python -c "import site; print(site.getsitepackages())"

এটি এমন কিছু মুদ্রণ করবে:

['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'

দ্রষ্টব্য: উপরে মুদ্রিত মানগুলি ডিফল্টর সাথে ইনস্টল করা অ্যানাকোন্ডা 4.x সহ উইন্ডোজ 10 এর জন্য।


24

সাইট-প্যাকেজগুলি ঠিক সেই জায়গা যেখানে পাইথন এটির মডিউল ইনস্টল করে।

"এটি সন্ধান" করার দরকার নেই, পাইথন নিজেই এটি কোথায় সন্ধান করতে পারে তা জানে, এই অবস্থানটি সর্বদা পাইথনপাথের (সিএস.পথ) অংশ।

প্রোগ্রামগতভাবে আপনি এটি এটি খুঁজে পেতে পারেন:

import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages

'/Users/foo/.envs/env1/lib/python2.7/site-packages'


3
সম্ভবত সাইট.জেটসিটপ্যাকেজগুলি ()
জে শারম

1
সমস্ত পাইথন বিতরণ নেই site-packagesএবং এটি বাড়বে StopIteration। উদাহরণস্বরূপ, দেবিয়ান (এবং উবুন্টু) dist-packagesতাদের বিতরণ করা মডিউলগুলি ইনস্টল করতে হবে।
মাইক টি

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