pip安裝到指定目錄的方案對比


 

在k8s集群中,為了更好的文件管理,所以並不是所有目錄都是支持持久化的. 而pip默認的安裝目錄是不能持久化的.

這樣就出現了一個問題:經常需要pip安裝一些包,希望這些包是持久化的.

我們能不能以一種簡單便捷的方式,支持將pip包安裝到持久化目錄,以實現pip安裝持久化的目的?

 

調研了一些方案,各有優劣.方案的對比結論

編號
方案
優點
缺點
1

pip install transforms3d --target=/home/work/workspace/

或者

pip install transforms3d -t /home/work/workspace/

pip命令支持,直觀

1, 每次安裝都需要指定目錄,容易出錯

2, 不支持pip uninstall transforms3d和pip show transforms3d.卸載時,需要手動刪除文件

3, 需要用戶額外輸入

2

優化方案1,使用環境變量

export PIP_TARGET=/home/work/workspace/

pip install transforms3d

用戶無感知 1, 不支持pip uninstall transforms3d和pip show transforms3d.卸載時,需要手動刪除文件
3

修改Python的base目錄

export PYTHONUSERBASE=/home/work/workspace/

pip install transforms3d --user

pip uninstall transforms3d

可以統一管理安裝目錄 1, 需要用戶額外輸入
4

pip.conf

1,vim /home/work/pip.config

輸入

[install] install-option=--install-lib=/home/work/workspace

2, export PIP_CONFIG_FILE=/home/work/pip.config

安裝 pip install transforms3d

可以統一管理安裝目錄

1, 不支持pip uninstall transforms3d和pip show transforms3d.卸載時,需要手動刪除文件

2,測試階段發現,安裝一些包時,有權限問題,報錯

5

pip.conf+ Python path

1, export PYTHONPATH=/home/work/workspace1

 export PIP_CONFIG_FILE=/home/work/pip.config

2, vim /home/work/pip.config

輸入

[global]
target=/home/work/workspace1

 

安裝 pip install transforms3d

卸載 pip uninstall transforms3d

用戶無感知

可以統一管理安裝目錄

 1, 支持pip uninstall transforms3d和pip show transforms3d

 

 

 

 

 

 

個人認為:

方案1,適合個別包指定安裝目錄,持久化的場景;

方案2,3, 並不易用;

方案4,本以為是很合適的方案,但是可以在測試的時候,發現安裝一些包會報錯(和測試的工作場景有關,有不同的用戶).直接否決;

方案5,適合大部分包都安裝到指定目錄,持久化的場景;

 

參考文章

https://docs.python.org/3/install/index.html#custom-installation

https://docs.python.org/3/install/index.html#alternate-installation
https://pip.pypa.io/en/stable/user_guide/#configuration


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM