[英]how to Install Pip under /usr/local/lib/python2.7/site-packages in Linux
[英]How to ignore python module in ~/.local/lib/python2.7/site-packages?
我有一個Python包dateutil
在~/.local/lib/python2.7/site-packages
目錄,以及一個在/usr/lib/python2.7/dist-packages/dateutil
。 當我嘗試運行從可執行kalibr (照相機校正工具,我下載了CDE), rrule.py
從dateutil
包在~/.local/lib/python2.7/site-packages
拋出一個錯誤“導入錯誤:沒有名為分數的模塊”。 我可以通過刪除所說的dateutil
包(它使用/usr/lib/python2.7/dist-packages/dateutil
那個)來使kalibr運行,但是我擔心這會對其他項目產生影響。
所以我想,這里的根本問題是,蟒蛇喜歡的dateutil
包在~/.local/lib/python2.7/site-packages
在一個在/usr/lib/python2.7/dist-packages/dateutil
。
我怎樣才能使python更喜歡后一種呢?
(我正在使用Ubuntu 16.04)
我不認為有一種方法可以選擇在每個軟件包的基礎上從哪個目錄加載軟件包,但是您可以更改Python查找軟件包的順序。 該順序反映在sys.path
。 默認程序包搜索路徑受特定於站點的文件影響 ,但主要是:
PYTHONPATH
環境變量中列出的目錄。 ~/.local
下的dist-packages
目錄( 用戶site-packages目錄 ),這是pip install --user
安裝內容的位置。 您可以通過設置環境變量PYTHONUSERBASE
來更改此目錄的路徑,並可以通過將PYTHONNOUSERSITE
設置為非空值來完全禁用該路徑。 /usr/local
下的dist-packages
目錄是pip install
安裝的目錄。 因此,如果需要首先遍歷目錄,則可以將其放在PYTHONPATH
。 在您的情況下,很有可能僅禁用~/.local
來運行kalibr。
env PYTHONNOUSERSITE=1 kalibr
要查看包搜索路徑,請運行
python -m site
(所有這些同樣適用於Python3。)
(通常,優先選擇~/.local
下的軟件包而不是/usr
下的軟件包。理想情況下,軟件包始終向后兼容,如果遇到不兼容的情況,您只需將最新版本安裝在~/.local
使用pip install --user
。但是在現實世界中,這並不總是可行的。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.