使用 python 源码搭建 conda 环境

复制代码
今天需要使用 python 2.6.8 的环境,发现 conda 设置成清华源后,没有旧版本了。所以打算从官网上下载一份 python 进行安装,
结果发现,conda 不能直接安装离线包(也可能我没找到方法),经过一番尝试终于解决了,这里记录一下。

下载并解压后,在源码目录执行

bash 复制代码
./configure -h

可以看到一堆配置参数,大部份我们都不需要关心。为了避免新编译的 python 污染系统已有的环境变量,这里只需要设置 --prefix 参数(即编译出的 python 存放位置,注意:这个参数需要绝对路径,我是在当前目录下新建了一个文件夹:268)。了解了这些依次执行下面的命令即可:

bash 复制代码
./configure --prefix /xxx/xxx/268
make
conda create -n py268 --offline

执行完上面的命令,会在 268 文件夹下生成 python 程序及创建一个 conda 的 py268 环境,但是现在的 py268 还是走的系统默认的 python 环境,需要把 268 文件夹下的内容复制到 conda 的 xxx/envs/py268 文件夹下,然后执行下面的命令安装 py268 的 pip:

bash 复制代码
conda activate py268
python -m ensurepip --upgrade

然后重启命令行,在 py268 环境下使用 pip 就是 py268 自己的 pip 了,而不是使用默认的。

另外,安装好后,我发现 anaconda 的环境中还有历史版本(可以通过 conda search python 查看),所以把 anaconda 的配置文件(通过 conda config --show 获得的)也一并贴在这里,主要是里面的 channels 配置。

conda config:

复制代码
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
  - ca-certificates
  - certifi
  - openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_stack: 0
auto_update_conda: True
bld_path: 
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /home/xxx/anaconda3/conda-bld
custom_channels:
  pkgs/main: https://repo.anaconda.com
  pkgs/r: https://repo.anaconda.com
  pkgs/pro: https://repo.anaconda.com
custom_multichannels:
  defaults: 
    - https://repo.anaconda.com/pkgs/main
    - https://repo.anaconda.com/pkgs/r
  local: 
debug: False
default_channels:
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
default_python: 3.8
default_threads: None
deps_modifier: not_set
dev: False
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env}) 
envs_dirs:
  - /home/xxx/anaconda3/envs
  - /home/xxx/.conda/envs
error_upload_url: https://conda.io/conda-post/unexpected-error
execute_threads: 1
extra_safety_checks: False
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_coxxxict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:
  - /home/xxx/anaconda3/pkgs
  - /home/xxx/.conda/pkgs
proxy_servers: {}
quiet: False
remote_backoff_factor: 1
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
repodata_fns:
  - current_repodata.json
  - repodata.json
repodata_threads: None
report_errors: None
restore_free_channel: False
rollback_enabled: True
root_prefix: /home/xxx/anaconda3
safety_checks: warn
sat_solver: pycosat
separate_format_cache: False
shortcuts: True
show_channel_urls: True
signing_metadata_url_base: https://repo.anaconda.com/pkgs/main
solver_ignore_timestamps: False
ssl_verify: True
subdir: linux-64
subdirs:
  - linux-64
  - noarch
target_prefix_override: 
track_features: []
unsatisfiable_hints: True
unsatisfiable_hints_check_depth: 2
update_modifier: update_specs
use_index_cache: False
use_local: False
use_only_tar_bz2: False
verbosity: 0
verify_threads: 1
whitelist_channels: []
相关推荐
霸道流氓气质2 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
ch6233 小时前
《AI 辅助编程实战:从零跑通一个 Excel 报表生成脚本的踩坑与复盘》
人工智能·python
import_random4 小时前
[python]conda和pip(区别和联系2)
python
Aurorar0rua4 小时前
CS50 x 2024 Notes Python - 01
开发语言·python·学习方法
用户6602676118794 小时前
备注接口返回成功,数据库却没变:怎样限定一次修复的范围?
python
Dumbness4 小时前
用 Python + UI Automation 读写微信 PC 版:一个群消息自动回复程序的实现与踩坑
python
艺杯羹5 小时前
Windows跨平台编码地雷全解:从GBK静默崩溃到内核级原子写入防御
人工智能·python·桌面客户端
用户8356290780515 小时前
使用 Python 在 Excel 中识别并高亮重复数据与唯一数据
后端·python
CCblandy5 小时前
Agent 工具调用怎么编排?本机实测:并行只到 2.63 倍,慢的先发省 30ms,CPU 活加 worker 无效
人工智能·后端·python·性能优化
用户8356290780515 小时前
使用 Python 在 Excel 中查找、替换数据并高亮显示
后端·python