0%

Python Configuration

1 Show channel

conda config --show显示所有的 conda 的config 信息,conda config --show channels显示所有 channel 信息

1
2
3
4
5
6
>>> conda config --show channels
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
- defaults

pip

1
pip config list

2 Delete channel

Using conda config --remove channels to delete channels from config

1
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

3 Add channel

3.1 Conda add channel

1
2
3
4
5
6
7
8
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

# 从 channel 中安装包时显示channel 的url,这样就可以知道包的安装来源
conda config --set show_channel_urls yes

# 安装确认中,不默认yes,而是由我来决定
conda config --set always_yes false

3.2 pip

3.2.1 Temporary configuration

可以利用 pip 从镜像源安装第三方库,只需安装后加入 -i source

1
2
3
4
5
# Install pandas
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas

# python-docx
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

国内还有其他镜像可供选择:

1
2
3
4
5
6
7
8
# 豆瓣
http://pypi.douban.com/simple/

# 阿里
http://mirrors.aliyun.com/pypi/simple/

# 中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/

3.2.2 Permanently configuration

  • 自动配置镜像源

    1
    2
    # 清华源
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 手动配置镜像源

    windows 下,直接在 user 目录中创建一个 pip 目录,再新建文件 pip.ini,接着打开 pip.ini 文件,复制粘贴以下内容并保存。

    1
    2
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple

4 Install package offline

4.1 Conda install

1
2
3
4
5
conda install --offline < package >

conda install <包名> #安装指定包
conda remove <包名> #移除指定包
conda update <包名> #更新指定包

4.2 pip install '.whl' package

再命令行窗口用 cd 命令跳转到 whl 文件所在目录,然后使用命令:

1
pip install ***.whl

5 Virtual environment

5.1 Methods with pip

5.1.1 Steps

  • Open terminal or Command prompt

  • Input D: to enter drive D

  • Then input cd project_dir

  • Create a virtual environment

    1
    python -m venv <venv name>

5.1.2 Activate venv

1
2
3
.\<venv name>\Scripts\activate # activate venv

.\venv\Scripts\deactivate # exit the current venv

5.2 Methods with conda

5.2.1 Create and activate environment

  • 创建虚拟环境

    1
    2
    3
    4
    5
    # create
    conda create --name forecast python=3.8 -y

    # actiavte
    conda actiavte d2l
  • 在指定位置创建虚拟环境

    1
    2
    3
    4
    5
    # create
    conda create --prefix=/Users/yangsu/miniconda3/envs/forecast python=3.8

    # activate
    conda activate /Users/yangsu/miniconda3/envs/forecast

5.2.2 Remove environment

  • With directory

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 第一步:首先退出环境
    >>> conda deactivate

    # 第二步:查看虚拟环境列表,此时出现列表的同时还会显示其所在路径
    >>> conda env list
    forecast /Users/yangsu/anaconda3/envs/forecast


    # 第三步:删除环境
    conda env remove -p 要删除的虚拟环境路径
    conda env remove -p /Users/yangsu/anaconda3/envs/forecast # example
  • With name of environment

    1
    2
    3
    4
    5
    6
    # 第一步:首先退出环境
    conda deactivate

    # 第二步:删除环境
    conda remove -n 需要删除的环境名 --all
    conda remove -n forecast --all # example

5.2.3 在notebook种使用虚拟环境

  • 工具库 ipykernel

    1
    pip install ipykernel
  • 创建基于虚拟环境的内核

    1
    2
    3
    4
    python -m ipykernel install --user --name ENVNAME --display-name DISP_NAME

    # 用 forecast 为例
    python -m ipykernel install --user --name whalequant --display-name whalequant
  • 查看所有 kernel

    1
    >>> jupyter kernelspec list
  • Delete kernel

    1
    2
    3
    4
    jupyter kernelspec remove [kernel名称]

    # take `forecast` as an example
    jupyter kernelspec remove forecast

5.3 Import module

  • 主程序和模块程序在同一目录

    1
    2
    3
    `-- src
    |-- mod1.py
    `-- test.py

    test.py导入模块 mod1:

    1
    2
    import mod1
    from mod1 import *
  • 主程序所在目录是模块所在目录的父(或祖辈)目录

    1
    2
    3
    4
    5
    `-- src
    |-- mod1.py
    |-- mod2
    | `-- mod2.py
    `-- test1.py

    test1.py中导入模块mod2,需要在mod2文件夹中创建__init__.py文件:

    1
    2
    from mod2.mod2 import *
    import mod2.mod2
  • 主程序导入上层目录中模块或其他目录(平级)下的模块

    1
    2
    3
    4
    5
    6
    7
    `-- src
    |-- mod1.py
    |-- mod2
    | `-- mod2.py
    |-- sub
    | `-- test2.py
    `-- test1.py

    test2.py 中导入模块 mod1mod2,首先需要在 mod2 下建立 __init__.py 文件,src 下不必建立该文件:

    1
    2
    3
    4
    import sys
    sys.path.append("..")
    import mod1
    import mod2.mod2

从上面可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径

-------------This blog is over! Thanks for your reading-------------