python离线安装第三方包
目錄
第一種:通過pip離線安裝
第二種:遷移虛擬環境
因為安全原因,有些服務器是不允許訪問外網的,所以我們沒辦法通過pip做在線安裝,那么這種情況只能采用離線的方式。
第一種:通過pip離線安裝
思路就是,先在有外網的服務器上,通過pip在線安裝第三方包,注意:這里的系統和python版本要和離線服務器的一致,不然會出現各種版本不一致問題。
大體步驟如下:
先看下系統:
[root@plugins ~]# cat /proc/version Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019然后安裝python,我這里裝的是pypy3:
(test) [root@plugins opt]# python Python 3.7.13 (7e0ae751533460d5f89f3ac48ce366d8642d1db5, Mar 29 2022, 06:03:31) [PyPy 7.3.9 with GCC 10.2.1 20210130 (Red Hat 10.2.1-11)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>>強烈推薦創建一個python的虛擬環境,保持隔離性,會省去很多干擾,比如創建一個名為test的虛擬環境:
python3 -m venv test然后激活這個虛擬環境:
source test/bin/activate在這個虛擬環境里面,下載我們需要的包:
從私服下載指定的第三方包,-i用來指定下載源,--trusted-host必須有 pip download -i http://172.17.162.124:8081/repository/pypi-group/simple/ -d modules -r requirements.txt --trusted-host 172.17.162.124下載源就是python包的倉庫,外部的和私服都可以,-r requirements.txt 是我們需要下載哪些包,都可以在這里指定。
然后將下載的包,傳到離線服務器,在離線服務器通過pip安裝,強調離線服務器的系統和python版本一定和我們下載包的環境一致。
將下載好的包,傳到服務器,通過以下命令本地安裝,--find-links為包的本地路徑 pip install --no-index --find-links=modules -r requirements.txt正常情況下,如果沒有錯誤的話,就是成功了,然后我在安裝pandas的時候就失敗了,因為是源包安裝,未能成功構建,折騰了幾天,換個思路,遷移虛擬環境。
第二種:遷移虛擬環境
我們在前面創建了虛擬環境test,其實就是個test目錄,打包,整個傳到離線服務器,但是不能直接使用,需要做以下修改:
1、修改test/bin/下activate文件中參數VIRTUAL_ENV,將其修改成離線服務器的完整路徑:
VIRTUAL_ENV="/opt/test" export VIRTUAL_ENV就是test的路徑。
2、修改bin下工具的python路徑,將其修改成離線服務器python路徑,如pip的,打開pip文件修改:
#!/opt/test/bin/pypy3 # -*- coding: utf-8 -*- import re import sys from pip._internal.cli.main import main if __name__ == '__main__':sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])sys.exit(main())修改第一行,其他工具類似。
3、檢查虛擬環境中python可執行文件是否可用,如下:
?主要是pypy3這個軟連接,指向的改為本機的python路徑,軟連接的話,要修改,需要先刪除:
rm pypy3這里要小心,不要?rm pypy3/ 就是不要帶"/",不然會把原始文件刪掉。
然后創建軟連接:
ln -s pypy3 /opt/pypy3.7-v7.3.9-linux64/bin/pypy3基本上做到這里,就算是遷移完成了,可以跑python程序了。
========================================================
有的還需要修改sys.path,我這邊目前暫未需要。
總結
以上是生活随笔為你收集整理的python离线安装第三方包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python安装第三方包_python
- 下一篇: python 导入第三方包_Python