最近有个项目不能使用外网, python开发环境需要离线安装, 于是记录一下离线安装的过程
Anaconda3/Archiconda3
管理开发环境一直使用的是Anaconda, 因为其安装后自带了python3.8
和pip
等一些基础包, 能省掉很多安装的麻烦
由于这个项目用到的服务器是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
中可以下载离线的安装包
pip的安装包一般有两个格式, .whl
格式和.tar.gz
格式, 两种格式都可以进行离线安装
.whl
不过针对不同的操作系统, 一般会有不同的.whl
包
如这里的
pip-xxxxx-any.whl
, any表示任何系统都可以用这个.whl
文件安装而有的包, 比如pandas, 就没有这个
pandas-xxx-any.whl
了, 只有特定的系统对应的whl
包
.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中进行安装时, 发现没有三个依赖, 那么就会尝试联网下载这三个依赖, 但是由于没有外网, 导致安装报错
于是安装这三个依赖, 注意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.gz2. 进入解压后的文件 cd pandas-1.2.43. 执行安装 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
后来来到pandas的github官网, 里面介绍了源码安装pandas的安装步骤
离线安装requirements
pip install --no-index --find-links=pip_packages -r requirements.txt
pip_packages
是存放离线安装包的目录
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5684.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~