虚拟环境安装+tmux+nvitop+conda activate无法激活环境的问题

安装anaconda

下载Anaconda安装包

bash Anaconda3-2023.09-0-Linux-x86_64.sh

一路安装,然后按照提示输入yes即可
.bashrc文件末尾写export PATH=/home/user/anaconda3/bin:$PATH

在terminal终端输入source ~/.bashrc
就会出现(base)标识,如果不出现(base)标识的话,先输入conda,看看是否出现版本信息,如果出现版本信息,就用conda init bash
然后再执行
source ~/.bashrc

创建虚拟环境

如果之前有存在的环境,将之前的环境导出为environment.yml,然后下次直接安装就好了

# 导出虚拟环境
conda env export --name ir > environment.yml
# 安装虚拟环境
conda env create -f environment.yml

conda create -n 的时候报错

(base) xwf@ps:~/ML/MAML/maml$ conda create -n tf python=3.7
Solving environment: failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/pro/noarch/repodata.json.bz2>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/pro/noarch/repodata.json.bz2 (Caused by SSLError(SSLError("bad handshake: Error([(\'SSL routines\', \'ssl3_get_server_certificate\', \'certificate verify failed\')])")))'))

从错误信息来看,这是一个 SSL 证书验证失败的问题,通常是因为网络问题或者 SSL 证书配置不正确引起的。有几种可能的解决方法:

  1. 重试命令:有时候,网络问题可能是暂时的,重新尝试运行命令可能会成功。

  2. 临时禁用 SSL 验证:你可以尝试暂时禁用 Conda 的 SSL 验证,看看是否可以绕过这个问题。这不是一个推荐的长期解决方案,因为它会降低安全性,但可以用来判断问题是否与 SSL 证书验证有关。可以通过设置 Conda 配置来禁用 SSL 验证:

    conda config --set ssl_verify false
    # 然后重新执行
    conda create -n tf python=3.7 
    # 一般到这里就是可以正常创建环境了,记得恢复SSL验证,然后就不需要执行步骤3了
    

    完成操作后,再次尝试创建环境。如果成功,记得恢复 SSL 验证:

    conda config --set ssl_verify true
    
  3. 更新 Conda:确保你的 Conda 是最新版本,老版本的 Conda 可能会有已知的 bug 或兼容性问题:

    conda update conda
    
  4. 检查网络配置:如果你在一个受限制的网络环境下(例如公司网络、学校网络),可能需要咨询你的网络管理员确认是否阻止了对 Anaconda 服务器的访问,或者是否需要配置特定的代理服务器。

  5. 使用其他下载源:如果你持续遇到连接到 Anaconda 服务器的问题,可以考虑临时更换到其他的下载源,例如使用清华大学的 Anaconda 镜像源:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --set show_channel_urls yes
    

执行这些步骤之后,再次尝试创建你的 Conda 环境。如果问题仍然存在,请告诉我,我们可以探讨其他的解决方案。

安装tmux

一般情况下,pip直接安装tmux就行

sudo apt install tmux
# 查看版本以及验证是否安装成功
tmux -V

如果是autoDL,请执行如下命令安装tmux

vim /etc/apt/sources.list
# 添加如下内容到sources.list
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse

# 添加之后,保存并退出文件,然后在命令行执行如下内容:
sudo apt update
sudo apt install tmux 

tmux的使用

# 创建新会话
tmux new-session -s yourSessionName

# 退出会话
ctr+b,然后单独按d
# 注意区分和销毁会话的区别!!!

# 销毁会话
ctr+d 

# 查看当前有哪些会话
tmux ls

# 重新连接已有会话
tmux attach -t yourSessionName

安装nvitop

一般情况下直接pip安装就行

pip3 install --user nvitop

在AutoDL中使用nvitop

验证cuda是否可用

python -c “import torch; print(torch.cuda.is_available())”

要安装 nvitop,一个用于监控 NVIDIA GPU 使用情况的工具,你可以遵循以下步骤来确保在你的环境中正确安装它。nvitop 主要依赖于 Python 和一些Python库,可以通过 pip 进行安装。以下是详细步骤:

步骤 1: 确保 Python 和 pip 已安装

首先,确保你的系统中已安装 Python 和 pip。你可以通过运行以下命令来检查它们的版本,确保它们已正确安装:

python --version
pip --version

步骤 2: 安装 nvitop

使用 pip 安装 nvitop。建议在虚拟环境中进行安装以避免污染全局 Python 环境。这里是创建和激活虚拟环境的方法:

# 创建虚拟环境
python -m venv nvitop-env

# 激活虚拟环境 (Linux 或 MacOS)
source nvitop-env/bin/activate

# 激活虚拟环境 (Windows)
nvitop-env\Scripts\activate

在虚拟环境中,使用 pip 安装 nvitop

pip install nvitop

步骤 3: 验证安装

安装完成后,你可以通过运行 nvitop 来检查是否正确安装。只需在命令行中输入:

nvitop

如果安装成功,这个命令将显示当前系统中 NVIDIA GPU 的使用情况。

注意事项

  • 确保你的系统中安装了 NVIDIA 的 GPU 和相应的 NVIDIA 驱动程序,nvitop 才能正常工作。
  • 如果你使用的是 NVIDIA Docker 容器或者类似的虚拟化环境,确保 GPU 已经被正确映射到了容器中。

这些步骤应该可以帮助你在大多数 Linux 环境中安装和运行 nvitop。如果在安装过程中遇到任何问题,可能需要检查 Python 环境的配置或是 nvitop 的依赖问题。

查看cpu/gpu资源使用情况

# 查看gpu和cpu使用情况
nvitop
# 或者使用
gpustat


# 单独查看cpu使用情况
top

在Linux中,有几种常用的命令可以用来查看CPU资源的占用情况。以下是一些常用的命令:

  1. top - 这是最常用的命令之一,用来显示系统中各个进程的实时动态资源占用情况,包括CPU占用率。使用方法很简单,只需要在终端输入top即可。

  2. htop - 这是top命令的一个增强版本,提供了一个彩色的界面,使得信息阅读更为直观,同时增加了一些交互操作。不过在某些Linux发行版中,可能需要先安装htop。可以使用sudo apt install htop(Debian/Ubuntu)或sudo yum install htop(CentOS/RedHat)来安装。

  3. vmstat - 这个命令可以报告关于内存、交换、I/O、系统活动以及CPU活动的统计信息。例如,使用vmstat 1可以每1秒刷新显示一次数据。

  4. mpstat - 这个命令是sysstat包的一部分,特别用于显示CPU的使用统计,可以单独查看每个CPU核心的性能情况。如果尚未安装,可以使用sudo apt install sysstatsudo yum install sysstat进行安装。使用方法如mpstat -P ALL 1每秒更新显示所有CPU核的统计信息。

这些工具都可以帮助你监视和分析CPU的使用情况,以确定可能的性能瓶颈。

查看进程

检查运行中的进程,挖矿软件在运行时会有相关的进程。通过查看系统当前运行的进程,你可能能发现一些疑似的挖矿程序或脚本。

# 下面的命令帮助你寻找包含常见挖矿软件名称的进程。
ps aux | grep -iE 'miner|mining|eth|xmrig|cgminer'

conda activate无法激活虚拟环境问题:

已经创建好了环境,conda env list也可以看到环境的存在,但是使用conda activate VirEnv就是不能激活环境,问题如下:

root@mchl-None:~# conda env list
# conda environments:
#
base                     /root/anaconda3
moea                     /root/anaconda3/envs/moea

root@mchl-None:~# conda activate moea
usage: conda [-h] [--no-plugins] [-V] COMMAND ...
conda: error: argument COMMAND: invalid choice: 'activate' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'build', 'content-trust', 'convert', 'debug', 'develop', 'doctor', 'index', 'inspect', 'metapackage', 'render', 'skeleton', 'repo', 'env', 'pack', 'server', 'token', 'verify')

解决方法如下:

这是一个常见的 Conda 错误,通常是因为 Conda 的 activate 命令在某些 Conda 版本中被更改为 source activate 或者 conda activate。为了确保你使用正确的命令来激活环境,请检查 Conda 的安装状态和 Shell 配置。以下是解决这个问题的几个步骤:

  1. 使用 source 激活环境:
    你可以尝试使用 source activate moea 来激活 Conda 环境。这是旧版本 Conda 中激活环境的方式。

    source activate moea
    
  2. 使用 conda activate 激活环境:
    如果 Conda 版本较新,你可以尝试使用 conda activate moea 来激活环境。

    conda activate moea
    
  3. 检查 Conda 是否正确初始化:
    如果激活命令不起作用,可能是因为 Conda 没有正确初始化。你可以尝试运行以下命令来确保 Conda 初始化正确:

    conda init bash
    source ~/.bashrc
    

    如果你使用的是 Zsh 或其他 Shell,确保使用对应的配置文件,例如 ~/.zshrc

  4. 确保 Conda 安装正常:
    如果仍然有问题,可能是 Conda 安装有误。尝试重新安装 Conda,确保安装路径和配置正确。

  5. 使用 conda env 命令激活环境:
    你还可以尝试使用 conda env 命令激活环境:

    conda env list
    conda env activate moea
    

通过上述步骤,你应该能够找到解决方法,并成功激活 Conda 环境。如果问题仍然存在,可能需要查看 Conda 文档或社区论坛以获取进一步帮助。

Protocol Buffers报错

报错内容如下所示

发生异常: TypeError
Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
  File "/home2/xwf/ML/MAML/maml/main.py", line 32, in <module>
    import tensorflow as tf
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

这个错误是因为你的代码中使用了 Protocol Buffers (protobuf) 的某个功能,但是你的 protobuf 库的版本与你的代码或生成的 _pb2.py 文件不兼容。出现这种情况通常是因为 protobuf 库升级引入了一些不向后兼容的变化。

你有几个解决方案可以尝试:【我选择的是方法2, 就可以成功解决问题】

  1. 重新生成 Protocol Buffers 文件:如果你有访问原始的 .proto 文件,你可以使用最新版的 protoc 编译器重新生成 _pb2.py 文件。确保你的 protoc 编译器的版本至少为 3.19.0。你可以这样生成:

    protoc --python_out=. your_proto_file.proto
    
  2. 降级 protobuf 库:如果你不能重新生成 .proto 文件,可以尝试降级你的 protobuf Python 库到 3.20.x 或更低版本,这可能会解决版本不兼容的问题。你可以使用以下命令来降级:

    pip install protobuf==3.20.0
    
  3. 使用纯 Python 实现:作为临时解决方法,你可以设置环境变量 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python 来使用纯 Python 的 protobuf 解析器。注意,这种方法的性能会比使用 C++ 优化的版本慢得多。你可以在你的 shell 中运行以下命令来设置这个环境变量:

    export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
    

    或者在 Python 脚本中添加:

    import os
    os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'
    

这些方法中选择一个,看看能否解决你的问题。如果还有问题,我们可以探讨其他的解决方案。

相关推荐

  1. macos vscode 激活虚拟环境

    2024-05-11 13:42:04       29 阅读
  2. conda激活虚拟环境python版本不对应

    2024-05-11 13:42:04       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 13:42:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 13:42:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 13:42:04       82 阅读
  4. Python语言-面向对象

    2024-05-11 13:42:04       91 阅读

热门阅读

  1. 富格林:采取可信策略谨防欺诈

    2024-05-11 13:42:04       28 阅读
  2. GO 使用get请求数据

    2024-05-11 13:42:04       29 阅读
  3. 跨国公司软件项目经理的心得体会

    2024-05-11 13:42:04       24 阅读
  4. golang编程规范

    2024-05-11 13:42:04       25 阅读
  5. 2024届SLAMer秋招算法岗面试题总结

    2024-05-11 13:42:04       36 阅读
  6. 简化 KNN 检索【翻译】Simplifying kNN search

    2024-05-11 13:42:04       34 阅读
  7. Milvus基本概念

    2024-05-11 13:42:04       28 阅读