离线无网络配置python环境复盘

在线安装

在有网的时候配置环境很简单,只需要

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple packagename

就行了

离线安装

但是在新的不能联网的电脑上跑原电脑上的程序,会遇到很多问题,目前复盘如下

1.首先尝试了直接conda导出,但是只有yaml文件,仍然需要联网才能下载。
2.然后尝试直接copy conda的环境文件夹,配置一下环境变量(参考https://blog.csdn.net/nnn0245/article/details/126429608),debug后程序能跑,但是不出结果,不知道还是哪里有问题。
3.采用另一方案,根据配置所需要的yaml文件,去pip官方源下载对应的whl文件,再离线安装
国内常用的源如下:
默认的pip 的源是 https://pypi.python.org/simple
国内知名的几个源
豆瓣 https://pypi.douban.com/simple
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 https://mirrors.aliyun.com/pypi/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple

注意几点:包的版本要对应,win版本对应x32,x54不一样,python版本对应cp多少多少,不一致会报错

tar.gz文件

另外还有一些特定版本的包找不到对应的whl文件,只能找tar.gz文件
tar.gz安装方法如下:

1.在将tar.gz文件下载好之后,需要使用解压缩软件将其解压到python安装命令中的Lib文件夹中,这里面放的都是pyhton第三方库和模块文件。
2.解压完成之后进入解压后的文件夹,然后将鼠标定位到文件夹地址栏。并且将%comspec%这个命令复制进入后回车,就能够直接打开当前文件夹的命令提示符,也就是控制台窗口了。
3.在这个窗口里面只需要执行以下命令就能够自动的将python库给安装并且添加到相对应的环境变量路径中,示例如下所示: python.exe setup.py install
如果是有细心地小伙伴就可以看到在python库文件夹中有一个叫做setup.py的文件,也只有tar.gz压缩文件解压后才会带这个文件,它就是实现python离线库文件安装的关键点。那么whl压缩文件的安装方式在之前的文章中也是有着详细步骤介绍的,感兴趣的话也可以去看一下。

whl文件

但是tar.gz也会出现安装不上的情况,一方面是可能缺少依赖,另一方面可以考虑把gz转成whl文件,方法如下(需要安装wheel库,如果没有安装一下wheel库)

从python官网下载tar.gz格式的文件
解压并进入文件夹
python setup.py check
打包成whl文件
python setup.py sdist bdist_wheel || true
该目录下会生成dist 文件夹,进入文件夹就会发现生成的whl文件了。

关于python - 将/someone/else’s/.tar.gz 包转换为 .whl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58964751/

单个安装(默认解释器下):
(直接在路径下输入cmd),然后pip install 把文件拖进来
在这里插入图片描述
可以看到安装成功
另外注意下这个是安装在默认解释器环境下的,如果想切换到其他解释器,比如pytorch,需要先

conda activate pytorch

再进行安装
在这里插入图片描述

如果whl文件有很多个,whl库下载好后,一个个pip install 很麻烦,可以用一个代码统一装该文件夹下的

import subprocess
import os

# 指定包含所有 .whl 文件的目录路径
whl_directory = 'C:\\path\\to\\whl_files'

# 遍历目录下的所有 .whl 文件
for filename in os.listdir(whl_directory):
    if filename.endswith('.whl'):
        whl_path = os.path.join(whl_directory, filename)
        command = f'pip install {whl_path}'

        # 执行命令安装 .whl 文件
        try:
            subprocess.check_call(command, shell=True)
            print(f'Successfully installed {filename}')

            # 安装成功后,删除已安装的 .whl 文件
            os.remove(whl_path)
            print(f'Removed {filename}')
        except subprocess.CalledProcessError as e:
            print(f'Error installing {filename}: {e}')

最后剩下来的就是没安装成功的,因为彼此依赖,可以多跑几轮。

另外有的gz会说缺少vs的一个文件,需要装好vs和对应组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值