python開發環境離線安裝


最近有個項目不能使用外網, python開發環境需要離線安裝, 於是記錄一下離線安裝的過程

Anaconda3/Archiconda3

管理開發環境一直使用的是Anaconda, 因為其安裝后自帶了python3.8pip等一些基礎包, 能省掉很多安裝的麻煩

由於這個項目用到的服務器是ARM架構的AArch64(通過uname -a可以查看系統架構信息), 而Anaconda官網下載Anaconda | Individual Edition中沒有這個系統對應的安裝包, 但是github上已經有大神編譯好的aarch64版本的anaconda(https://github.com/Archiconda/build-tools/releases)直接下載安裝即可

Archiconda3-0.2.3-Linux-aarch64.sh

在這里插入圖片描述

升級pip

上面的Archiconda3安裝好后, 自帶的是python3.7版本, 有需要的可以自己升級, 但是自帶的pip只有10.x版本, 需要手動升級到最新版, 否則有些安裝包可能安裝會出錯

來到pip資源包的官方網站: PyPI · The Python Package Index, 搜索pip, 在download files中可以下載離線的安裝包

image-20210517150712223

pip的安裝包一般有兩個格式, .whl格式和.tar.gz格式, 兩種格式都可以進行離線安裝

  • .whl

不過針對不同的操作系統, 一般會有不同的.whl

如這里的pip-xxxxx-any.whl, any表示任何系統都可以用這個.whl文件安裝

而有的包, 比如pandas, 就沒有這個pandas-xxx-any.whl了, 只有特定的系統對應的whl

image-20210517152103387

.whl包的安裝命令為:

pip install xxxx.whl
  • .tar.gz

但是.tar.gz只有一個, 是源碼, 所有系統都能進行安裝

.tar.gz包的安裝命令為:

pip install xxx.tar.gz
或者
1. 解壓tar.gz文件
2. 進入解壓后的目錄
3. 執行 python setup.py install

一般我比較習慣先找安裝系統對應的.whl包, 找不到的話就用.tar.gz源碼安裝, 這里我們下載pip-21.1.1-py3-none-any.whl並安裝

pip install pip-21.1.1-py3-none-any.whl

升級setuptools

setuptools也和安裝有關系, 最好也進行升級, 還是在pipy網站進行下載

pip install setuptools-56.2.0-py3-none-any.whl

離線安裝pandas

在pipy網站並沒有找到支持AArch64系統的pands.whl包(見上圖), 於是選擇下載源碼pandas-1.2.4.tar.gz進行安裝

pip install pandas-1.2.4.tar.gz

但是發現安裝包錯, 原因是安裝pandas前需要先安裝三個依賴numpy, python_dateutil, pytz, 在pip中進行安裝時, 發現沒有三個依賴, 那么就會嘗試聯網下載這三個依賴, 但是由於沒有外網, 導致安裝報錯

image-20210517152920042

於是安裝這三個依賴, 注意numpy需要安裝對應系統的版本

pip install numpy-1.20.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip install python_dateutil-2.8.1-py2.py3-none-any.whl
pip install pytz-2021.1-py2.py3-none-any.whl

安裝好三個依賴后, 繼續進行安裝pandas: pip install pandas-1.2.4.tar.gz, 發現還是報錯的, 於是意識到這個安裝方式可能就是需要進行聯網才行, 於是換成python setup.py install這種安裝方式試試看

1. 解壓pandas-1.2.4.tar.gz
tar -zxvf pandas-1.2.4.tar.gz
2. 進入解壓后的文件
cd pandas-1.2.4
3. 執行安裝
python setup.py install

結果又發現一個報錯

Traceback (most recent call last):
  File "setup.py", line 761, in <module>
    setup_package()
  File "setup.py", line 731, in setup_package
    ext_modules=maybe_cythonize(extensions, compiler_directives=directives),
  File "setup.py", line 496, in maybe_cythonize
    raise RuntimeError("Cannot cythonize without Cython installed.")
RuntimeError: Cannot cythonize without Cython installed.

原因是Cython沒有安裝, 於是繼續下載Cython安裝

pip install Cython-0.29.23-py2.py3-none-any.whl

然后繼續進行pandas安裝, 終於發現沒有報錯了, 剩下的只需要等待就行了

python setup.py install

image-20210517153852534

后來來到pandas的github官網, 里面介紹了源碼安裝pandas的安裝步驟

image-20210517154209901

離線安裝requirements

pip install --no-index --find-links=pip_packages -r requirements.txt

pip_packages是存放離線安裝包的目錄


免責聲明!

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



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