虚拟环境的配置和复制

一、虚拟环境配置

1、创建虚拟环境并进入:

conda create -n *****(虚拟环境名) python=3.7   #创建虚拟环境
source activate *****(虚拟环境名)              #进入虚拟环境

2、在虚拟环境中安装pytorch:
(1)使用如下指令查看cuda版本。

nvcc --version

(2)到pytorch官网选择与cuda版本匹配的pytorch:
pytorch官网:https://pytorch.org/get-started/previous-versions/
参考:https://blog.youkuaiyun.com/xuzhichao123456/article/details/109218835

我选择的是pytorch1.2.0(对应于cuda=10.0):(conda安装慢就用pip)

#cuda10.0可选择:
pip install torch==1.2.0 torchvision==0.4.0
#cuda10.1可选择:
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

3、安装cv2、numpy等需要的模块(包):
(1)常用的安装和卸载指令:

sudo apt-get install     #卸载: sudo apt-get remove
pip install              #卸载: pip uninstall
conda install            #卸载: conda uninstall

(2)某些模块(包/库)的安装:

source activate env_name   #先激活进入虚拟环境再安装
conda install scipy matplotlib tensorboard h5py tqdm
pip install timm=0.3.2
pip install numpy scipy matplotlib tensorboard h5py tqdm
#或:
pip install numpy    #在pytorch中有自带的numpy
pip install scipy
pip install matplotlib
pip install tensorboard
pip install h5py
pip install tqdm
conda install scikit-image
python -m pip install opencv-python

(3)安装apex——用于改变数据格式来减小模型显存占用的工具。

cd PATH_TO_INSTALL
git clone https://github.com/NVIDIA/apex
cd apex
conda activate env_name     #进入虚拟环境
git reset --hard 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1a
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

二、同一机器上复制虚拟环境:

conda create -n new_env_name --clone old_env_name

将虚拟环境old_env_name复制到new_env_name

三、复制conda环境(不同机器之间也适用):

conda activate env_name   #激活环境
conda env export --file env_name.yml   #导出环境,得到.yml文件

cd path_dir_of_yml        #进入.yml文件所在的目录
conda env create -f env_name.yml       #导入环境

四、复制pip模块(不同机器之间也适用):

conda activate env_name   #激活环境
pip freeze > requirements.txt   #导出环境,得到.txt文件

cd path_env_name.yml        #进入.txt文件所在的目录
source activate env_name      # 激活新建的虚拟环境
pip install -r requirements.txt    #安装.txt文件中包含的全部模块

五、九天毕昇平台上复制环境整合

(1)导出环境与导入环境

conda activate env_name   #激活环境
conda env export --file env_name.yml   #导出环境,得到.yml文件

cd path_dir_of_yml        #进入.yml文件所在的目录
conda env create -f env_name.yml       #导入环境

(2)安装pytorch

source activate env_name   #先激活进入虚拟环境再安装
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

(3)安装环境中没有的其他库

source activate env_name   #先激活进入虚拟环境再安装
pip install timm

(4)安装apex用于多GPU训练

cd PATH_TO_INSTALL
git clone https://github.com/NVIDIA/apex
cd apex
git reset --hard 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1a
source activate env_name     #进入虚拟环境
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

如果报错:

Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/root/share/nlspn_nyu/apex/setup.py", line 152, in <module>
        check_cuda_torch_binary_vs_bare_metal(torch.utils.cpp_extension.CUDA_HOME)
      File "/root/share/nlspn_nyu/apex/setup.py", line 106, in check_cuda_torch_binary_vs_bare_metal
        "https://github.com/NVIDIA/apex/pull/323#discussion_r287021798.  "
RuntimeError: Cuda extensions are being compiled with a version of Cuda that does not match the version used to compile Pytorch binaries.  Pytorch binaries were compiled with Cuda 10.2.
    In some cases, a minor-version mismatch will not cause later errors:  https://github.com/NVIDIA/apex/pull/323#discussion_r287021798.  You can try commenting out this check (at your own risk).
    Running setup.py install for apex ... error
ERROR: Command errored out with exit status 1: /root/.local/conda/envs/lsntorch/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/root/share/nlspn_nyu/apex/setup.py'"'"'; __file__='"'"'/root/share/nlspn_nyu/apex/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' --cpp_ext --cuda_ext install --record /tmp/pip-record-lewx3715/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /root/.local/include/python3.6m/apex Check the logs for full command output.

则分别使用pip listconda list查看torch和torchvision的版本,如果不匹配,就将不想要的版本卸载:

pip uninstall torch
pip uninstall torchvision

再执行:

pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
### 如何复制现有的 Python 虚拟环境并以另一个名称命名 在 Python 中,虽然没有直接的命令可以一键复制虚拟环境,但可以通过手动方式实现这一目标。以下是具体方法: #### 方法一:通过 `conda` 复制虚拟环境 如果使用的是 Conda 来管理虚拟环境,则可以直接利用其内置功能完成复制操作。 运行以下命令来复制名为 `source_env` 的现有虚拟环境到新环境 `target_env`: ```bash conda create --name target_env --clone source_env ``` 此命令会将源环境中所有的包及其配置精确地克隆至新的虚拟环境中[^3]。 #### 方法二:通过 `venv` 文件系统复制 对于由标准库中的 `venv` 或其他工具(如 `virtualenv`)创建的虚拟环境,可采用如下步骤进行复制: 1. **定位原始虚拟环境路径** 找到要被复制的那个虚拟环境所在的目录位置。假设该目录为 `/path/to/original_venv/`. 2. **执行文件夹拷贝** 利用操作系统自带的文件复制指令或者图形界面拖拽的方式把整个虚拟环境文件夹复制出来,并重命名为期望的新名字。例如,在 Linux/MacOS 下可以用 cp 命令;而在 Windows 上则可能更倾向于 robocopy 或者简单右键菜单操作。 对于Linux/macOS: ```bash cp -r /path/to/original_venv /path/to/new_venv ``` 3. **更新内部链接(仅限必要情况)** 如果某些特殊情况下发现副本内的脚本仍然指向旧名或其他不匹配设置时,需进入新虚拟环境下的 bin/python 文件修改相应部分使其适配当前实际状态。不过通常来说上述单纯复制已足够满足需求[^4]. #### 方法三:借助 pip freeze 导出导入依赖关系表法 另一种较为通用但也稍微复杂一点的办法就是先导出现有虚拟环境里所安装的所有第三方模块清单存入 requirements.txt ,之后再依据这份列表重建一个新的独立虚拟环境加载这些相同的依赖项进去: 1. 激活原虚拟环境; 2. 运行 `pip freeze > requirements.txt` 将所有依赖记录下来保存成文本形式; 3. 创建全新的目标虚拟环境; 4. 在新建好的虚拟环境下激活状态下执行 `pip install -r path_to_requirements_file` 加载所需软件包集合[^1]. 这种方法的优点在于能够完全控制哪些包会被转移到新环境中去,同时也适用于不同类型的虚拟化方案之间互相迁移场景之中. ```python import sys print(sys.executable) ``` 以上代码可用于验证当前正在使用的解释器是否来自指定的虚拟环境实例当中. ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值