Thư mục site-packagesđược đề cập trong các bài báo liên quan đến Python. Nó là gì? Làm thế nào để sử dụng nó?
Thư mục site-packagesđược đề cập trong các bài báo liên quan đến Python. Nó là gì? Làm thế nào để sử dụng nó?
Câu trả lời:
site-packageslà thư mục đích của các gói Python được xây dựng thủ công. Khi bạn xây dựng và cài đặt các gói Python từ nguồn (sử dụng các bản phân phối , có thể bằng cách thực thi python setup.py install), bạn sẽ tìm thấy các mô-đun được cài đặt site-packagestheo mặc định.
Có các vị trí tiêu chuẩn:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure có nghĩa là mô-đun chỉ sử dụng mã Python. Không thuần túy cũng có thể chứa mã C / C ++.
site-packagestheo mặc định là một phần của đường dẫn tìm kiếm Python , vì vậy các mô-đun được cài đặt ở đó có thể được nhập dễ dàng sau đó.
lib64!
/usr/lib/python3.6?
Khi bạn sử dụng --usertùy chọn với pip , gói sẽ được cài đặt trong thư mục của người dùng thay vì thư mục chung và bạn sẽ không cần phải chạy lệnh pip với đặc quyền của quản trị viên.
Vị trí của thư mục gói của người dùng có thể được tìm thấy bằng cách sử dụng:
python -m site --user-site
Điều này sẽ in một cái gì đó như:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Khi bạn không sử dụng --usertùy chọn với pip , gói sẽ được cài đặt trong thư mục chung do:
python -c "import site; print(site.getsitepackages())"
Điều này sẽ in một cái gì đó như:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Lưu ý: Các giá trị in trên dành cho Trên Windows 10 có cài đặt Anaconda 4.x với các giá trị mặc định.
gói trang chỉ là vị trí mà Python cài đặt các mô-đun của nó.
Không cần phải "tìm nó", python tự biết tìm nó ở đâu, vị trí này luôn là một phần của PYTHONPATH (sys.path).
Theo chương trình, bạn có thể tìm thấy nó theo cách này:
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'
site-packages, và điều này sẽ tăng lên StopIteration. Ví dụ, Debian (và Ubuntu) phải dist-packagescài đặt các mô-đun phân tán của chúng.
/usr/local/lib/python3.6/site-packagestrên ubuntu