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,我这边目前暂未需要。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值