簡體   English   中英

python的站點包目錄是什么?

[英]What is python's site-packages directory?

目錄site-packages在各種 Python 相關文章中都有提及。 它是什么? 如何使用它?

site-packages是手動構建的 Python 包的目標目錄 當您從源代碼構建和安裝 Python 包時(使用distutils ,可能通過執行python setup.py install ),默認情況下您會在site-packages找到已安裝的模塊。

有標准位置:

  • Unix(純) 1prefix/lib/pythonX.Y/site-packages
  • Unix(非純): exec-prefix/lib/pythonX.Y/site-packages
  • Windows: prefix\\Lib\\site-packages

1 Pure表示該模塊僅使用 Python 代碼。 非純也可以包含 C/C++ 代碼。

默認情況下, site-packages是 Python搜索路徑的一部分,因此安裝在那里的模塊之后可以輕松導入。


有用的閱讀

當您將--user選項與 pip 一起使用時,軟件包將安裝在用戶的文件夾而不是全局文件夾中,您無需以管理員權限運行 pip 命令。

可以使用以下命令找到用戶包文件夾的位置:

python -m site --user-site

這將打印如下內容:

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

當您不將--user選項與 pip 一起使用時,該軟件包將安裝在以下給出的全局文件夾中:

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

這將打印如下內容:

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

注意:以上打印值適用於安裝了默認值的 Anaconda 4.x 的 Windows 10。

site-packages 只是 Python 安裝其模塊的位置。

無需“查找”,python 自己知道在哪里可以找到它,該位置始終是 PYTHONPATH (sys.path) 的一部分。

以編程方式,您可以通過以下方式找到它:

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'

在我的 CentOS7.9 Linux(一個 RedHat 克隆)上,它位於~/.local/lib/python3.9/site-packages/ ,不需要將它包含在 PYTHONPATH 變量中。

根據這里

Python 安裝在模塊目錄中有一個 site-packages 目錄。 此目錄是刪除用戶安裝的軟件包的位置。

雖然它沒有解釋為什么選擇站點這個詞,但它解釋了這個目錄的含義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM