Python:conda离线安装python环境

一、需求

在离线环境下,使用anaconda创建环境的时候,需要指定Python的版本,但是无法自动下载,需要手动下载Python包,然后用conda进行安装。

在这里插入图片描述

二、解决

首先下载Python包,在https://repo.anaconda.com/中选择Anaconda Packages 。

在这里插入图片描述

可以看到里面有Python包也有R包还有Microsoft R Open等一些包,然后选择Python的相关包:

在这里插入图片描述

最终打开的页面:

在这里插入图片描述

也可以通过https://repo.anaconda.com/pkgs/main/linux-64/直接打开。
这里我选择了python-3.6.13-h12debd9_1.tar.bz2, 同时安装pip, pip-20.3-py36h06a4308_0.tar.bz2

1.新建环境名

在~/anaconda3/envs/目录下,新建一个空文件夹,目录名为环境名,使用conda env list 查看环境列表时并不会显示该环境名称;这里我创建一个test环境名。

在这里插入图片描述

2.进入环境

但是可以进入新建的环境:使用conda activate +环境名进入新环境;

在这里插入图片描述

有时候提示Use ‘conda create’ to convert the directory to a conda environment. 这时需要通过conda create --name test --offline 来创建一个空环境

3.安装python

然后在当前环境下安装Python:conda install python-3.6.13-h12debd9_1.tar.bz2

可以使用命令conda install python-3.6.13-h12debd9_1.tar.bz2 --offline 来解决有时候会报错:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host=‘repo.anaconda.com’, port=443): Max retries exceeded with url: /pkgs/main/notices.json (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7fb9a8912dc0>: Failed to establish a new connection: [Errno 101] Network is unreachable’))

在这里插入图片描述

4.查看python

在新的环境中可以看到安装的Python

在这里插入图片描述

5.安装pip

conda install pip-20.3-py36h06a4308_0.tar.bz2

在这里插入图片描述

6.此时安装的pip位于新建环境中,输入pip --version 查看pip应位于新建环境目录下。

在这里插入图片描述

三、安装openssl

如果我们用pip安装一个Python包的时候会报错:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

需要安装openssl

1.下载openssl

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

2.解压缩:

tar -xvf openssl-1.1.1g.tar.gz

3.cd openssl-1.1.1g

4.配置

./config --prefix=/home/用户名/openssl --openssldir=/home/用户名/openssl no-ssl2

5.make

6.make test

运行结果显式成功

7.make install

8.编辑/.bash_profile,或者/.bash_rc,

添加内容:

export PATH=$HOME/openssl/bin:$PATH
export LD_LIBRARY_PATH=$HOME/openssl/lib
export LC_ALL="en_US.UTF-8"
export LDFLAGS="-L /home/用户名/openssl/lib -Wl,-rpath,/home/用户名/openssl/lib"

source ~/.bash_profile或者source ~/.bash_rc

在这里插入图片描述

这样就可以用pip安装Python包了。

其他:

参考:https://blog.csdn.net/vincent_duan/article/details/126382001

### Conda 离线安装 Python 源码包的方法 在离线环境中通过 Conda 安装 Python 的源码包是一项较为复杂的任务,因为需要确保所有依赖项都已预先下载并准备好。以下是详细的解决方案: --- #### 1. **准备工作** 为了能够在离线环境中成功安装 Python 源码包,首先需要在线环境下完成以下工作: - 获取目标 Python 包及其所有依赖项的 `.tar.bz2` 文件。 - 这些文件可以从 Anaconda 的官方仓库(https://repo.anaconda.com/pkgs/main/ 或其他子频道)中找到。 使用以下命令可以查询指定包的相关信息以及其依赖关系: ```bash conda search --info package_name ``` 此命令会返回该包的具体版本、大小以及其他重要细节[^4]。 --- #### 2. **下载必要的文件** 根据第 1 步的结果,在线上机器上访问对应的 URL 地址,手动下载所需的 `.tar.bz2` 文件。例如,假设要安装 NumPy 源码包,则应前往类似以下路径寻找适合的目标文件: ``` https://repo.anaconda.com/pkgs/main/linux-64/numpy-[version].tar.bz2 ``` 注意替换 `[version]` 和操作系统架构部分以适配实际情况。 除了主要包外,还需一并获取它所依赖的所有其他组件。可以通过分析 `meta.yaml` 配置文件了解完整的依赖列表[^3]。 --- #### 3. **传输至离线环境** 将上述下载的所有 `.tar.bz2` 文件复制到目标离线计算机上的某一个固定目录中,例如 `/path/to/offline_packages/`。 --- #### 4. **创建本地通道** 为了让 Conda 能够识别这些离线文件作为合法的数据源,需定义一个新的本地通道。执行以下命令: ```bash conda config --add channels file:///path/to/offline_packages/ ``` 这里的关键在于使用 `file://` 协议指向存放离线包的实际路径[^1]。 --- #### 5. **安装源码包** 现在可以在离线环境中正常调用 `conda install` 来加载预准备好的源码包了。例如: ```bash conda install numpy --offline ``` 此处的 `--offline` 参数告知 Conda 不尝试连接互联网,而只从本地缓存或自定义渠道检索资源[^2]。 如果是在特定虚拟环境中操作,则加上 `-n` 或者 `--name` 参数指定目标环境名称: ```bash conda install -n your_env_name numpy --offline ``` --- #### 注意事项 - 所有的 `.tar.bz2` 文件必须放置在同一目录下,并且保持原始命名不变。 - 若某些依赖无法满足,可能需要重新评估整体方案或将缺失的部分补充完整。 - 创建虚拟环境时推荐明确声明使用的 Python 版本号,避免潜在冲突: ```bash conda create -n your_env_name python=3.x ``` --- ### 示例代码 下面是一个简单的脚本用来验证新安装Python 源码包是否生效: ```python import sys print("Python Version:", sys.version) try: import numpy print("NumPy Installed Successfully! Version:", numpy.__version__) except ImportError: print("Failed to Import NumPy.") ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Freedom3568

技术域不存在英雄主义,不进则退

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值