【AnaConda/MiniConda/Linux】使用sudo python或切换root管理员conda环境被绕过解决方案

写在前面

部分机型修改环境变量存在风险,可能用于被覆盖而出现大量命令无法找到的情况
可以输入这个解决

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

往期相关内容

探索Miniconda3:简单、灵活的Python环境和软件包管理利器

【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

半自动化使用.bat手动打包迁移python项目

文章目录

  • 写在前面
  • 往期相关内容
    • 解决方案
      • 方案一:使用绝对路径指定Anaconda中的Python
      • 方案二:创建别名
      • 方案三:su切root然后再次初始化conda
    • 小结
      • conda常用命令
  • 以下是基础知识介绍
      • 1. Linux基础知识
        • 1.1. 操作系统和Linux概述
        • 1.2. 用户权限和sudo命令
        • 1.3. Shell和常用命令
      • 2. Shell编程
        • 2.1. 变量、条件语句和循环
        • 2.2. 函数和脚本编写
        • 2.3. Shell配置文件和别名
        • 2.4. sh与bat的对比
      • 3. 风险管理与系统维护
        • 3.1. 备份和恢复数据
        • 3.2. 安全原则和风险防范
        • 3.3. 系统调优和性能监控
      • 4. Windows对比和迁移
        • 4.1. Windows和Linux系统对比
        • 4.2. 迁移指南和跨平台操作
        • 4.3. 常见问题解决和技巧分享

解决方案

sudo命令仍然默认使用系统中的Python 2.7而不是Anaconda环境中的Python。您可以尝试以下方法解决这个问题:

方案一:使用绝对路径指定Anaconda中的Python

  1. 先找路径
which python

在这里插入图片描述

  1. 尝试直接指定Anaconda环境中的Python解释器的路径来运行Python脚本,例如:
sudo /home/topeet/miniconda3/bin/python your_script.py

这将确保您在sudo下使用的是Anaconda环境中的Python。

方案二:创建别名

您还可以通过在.bashrc文件中创建别名来简化操作。打开终端并编辑.bashrc文件:

nano ~/.bashrc

在文件末尾添加以下行:

export PATH="/home/topeet/miniconda3/bin/python:$PATH"
alias sudo='sudo env PATH=$PATH'

在这里插入图片描述

保存并关闭文件,然后重新加载.bashrc文件:


source ~/.bashrc

现在尝试再次运行 sudo python 命令,应该会使用Anaconda环境中的Python。

方案三:su切root然后再次初始化conda

conda activate

当您运行conda activate时出现问题时,建议按照以下步骤尝试解决:

  1. 运行 conda init bash 命令以初始化您的 Bash shell。
  2. 关闭当前 shell 会话,然后重新打开一个新的 shell。
  3. 确保在新 shell 中运行 conda activate 命令。

小结

总结原理:

  • 使用绝对路径指定Anaconda中的Python: 这种方法通过直接指定 Anaconda 环境中 Python 解释器的绝对路径,确保在 sudo 下使用的是 Anaconda 环境中的 Python 版本,绕过可能存在的环境变量问题。

  • 创建别名: 通过在 .bashrc 文件中创建别名,将 Anaconda 环境中的 Python 添加到系统 PATH 中,并为 sudo 命令设置相同的环境变量,从而确保 sudo 命令也使用 Anaconda 环境中的 Python。

  • 使用su切root然后再次初始化conda: 切换到 root 用户后重新初始化 conda 环境,这有助于解决可能由于权限或环境配置问题导致的 conda activate 失败的情况,通过在 root 用户下执行初始化操作来修复环境配置问题。

这些方法的核心原理在于确保在 sudo 或 root 权限下,系统能够正确使用 Anaconda 环境中的 Python 解释器,以避免因环境变量或权限问题而导致 conda activate 出错。

conda常用命令

探索Miniconda3:简单、灵活的Python环境和软件包管理利器

确保Anaconda环境已正确激活,并且环境变量设置正确。您可以执行以下命令检查当前是否在Anaconda环境中:

conda info --envs

如果Anaconda环境没有正确激活,请使用以下命令激活:

conda activate your_environment_name

然后尝试再次运行 sudo python 命令。

退环境

conda deactivate 

以下是基础知识介绍

1. Linux基础知识

1.1. 操作系统和Linux概述

操作系统是计算机系统的核心软件,负责管理硬件资源、提供用户界面等功能。Linux是一种开源的Unix-like操作系统内核,与Windows等操作系统有着明显的区别。Linux广泛应用于服务器、个人电脑和嵌入式设备等领域。

1.2. 用户权限和sudo命令

在Linux系统中,用户权限分为超级用户(root)和普通用户。为了执行需要超级用户权限的操作,可以使用sudo命令。通过/etc/sudoers文件配置,普通用户可以以特权身份运行特定命令。

示例:

sudo apt-get install nginx
1.3. Shell和常用命令

Shell是用户与操作系统内核交互的接口,最常见的是Bash(Bourne Again SHell)。用户可以通过Shell执行各种命令,如文件操作、进程管理等。

常用命令示例:

  • ls:列出目录内容
  • cd:切换目录
  • mkdir:创建新目录

示例:

ls -l
cd Documents
mkdir new_folder

以上是Linux基础知识的一部分,理解这些概念将有助于您更好地使用和理解Linux系统。接下来会继续深入探讨Shell编程、风险管理与系统维护等主题。如果您有任何问题或需要进一步解释,请随时告诉我!

2. Shell编程

2.1. 变量、条件语句和循环

在Shell编程中,变量的定义以及使用条件语句和循环可以有效地控制程序流程。

示例:

# 定义一个变量
name="Alice"# 使用条件语句
if [ "$name" == "Alice" ]; thenecho "Hello, Alice!"
fi# 使用循环
for i in {1..5}; doecho $i
done
2.2. 函数和脚本编写

通过Shell支持的函数定义,可以将代码块封装成函数以便重复调用。此外,编写Shell脚本可以批量执行一系列操作。

示例:

# 定义一个函数
say_hello() {echo "Hello, $1!"
}# 调用函数
say_hello "Bob"
2.3. Shell配置文件和别名

Shell配置文件如.bashrc可用于设定环境变量、别名等。别名是一种方式,通过简洁的名称来表示一条长命令或一系列命令。

示例:

# 设置一个别名
alias ll='ls -la'
2.4. sh与bat的对比

【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

半自动化使用.bat手动打包迁移python项目
sh是Unix/Linux系统默认的Shell解释器,而bat则是Windows系统中的批处理脚本。它们有着不同的语法和功能特点。bat文件通常以.bat为扩展名,在Windows环境下运行。与sh相比,bat脚本更多地用于Windows系统中进行批处理操作,包括文件操作、目录操作等。需要根据具体操作系统和需求选择适合的脚本类型。

以下是一个简单的.bat批处理脚本示例:

@echo off
echo Welcome to My Batch Script
set name=John
if "%name%"=="John" (echo Hello, John!
) else (echo Hello, Stranger!
)for /l %%i in (1, 1, 5) do (echo %%i
)

这个批处理脚本演示了变量定义、条件语句和循环的基本用法,可以在 Windows 环境下运行。

3. 风险管理与系统维护

3.1. 备份和恢复数据

数据备份是确保数据安全的重要步骤。我们可以使用rsync工具来创建数据备份,并进行恢复操作。

示例:

# 使用rsync进行数据备份
rsync -av /source/directory /destination/directory

解释:

  • rsync: 是一个强大的文件同步工具,可以用于数据备份和文件同步。
  • -av: 参数用于指定操作模式,-a表示以递归模式处理文件,并保持所有文件属性,-v表示详细模式输出。
  • /source/directory: 源目录,需要备份的数据所在位置。
  • /destination/directory: 目标目录,备份数据存放的位置。
3.2. 安全原则和风险防范

为确保系统安全,必须遵循一些关键的安全原则和采取相应的风险防范措施。这包括但不限于:

  • 定期更新系统补丁,确保系统安全漏洞得到及时修复。
  • 限制用户权限,避免未授权访问系统关键部分。
  • 使用防火墙规则,过滤网络流量并保护系统免受恶意攻击。
3.3. 系统调优和性能监控

系统调优可以提高系统性能,常见的调优措施包括优化内存使用和调整文件系统参数。同时,通过监控工具如tophtop可以实时查看系统资源的使用情况。

示例:

# 使用top监控系统资源
top

解释:

  • top: 是一个命令行实用程序,用于实时监视系统资源的使用情况,包括CPU、内存、进程等信息。通过top命令可以了解系统中资源消耗较高的进程,帮助进行性能监控和调优。

4. Windows对比和迁移

4.1. Windows和Linux系统对比

Windows和Linux操作系统在设计理念和操作方式上存在显著差异:

  • 注册表 vs 文本文件: Windows系统使用注册表来存储系统配置信息,而Linux通常使用文本文件(如/etc目录下的配置文件)进行配置。
  • 图形界面 vs 命令行: Windows注重图形用户界面(GUI),而Linux更加强调命令行操作,尤其对于系统管理员和开发人员而言。
  • 商业化 vs 开源性: Windows是商业操作系统,而Linux是开源的,用户可以自由获取并修改其源代码。
4.2. 迁移指南和跨平台操作

在进行Windows到Linux系统迁移时,需要考虑以下关键因素:

  • 文件格式兼容性: 确保从Windows迁移到Linux时文件格式得到正确处理,例如将CRLF换行符转换为LF。
  • 应用程序支持: 部分Windows专有软件可能无法直接在Linux上运行,需寻找替代方案或使用虚拟机等技术。
  • 跨平台工具: 利用跨平台工具(如Git、Python)可以在不同操作系统中共享项目和数据,提高工作效率。
4.3. 常见问题解决和技巧分享

解决Windows和Linux系统问题的方法可能存在一些区别:

  • 权限管理: Linux系统采用基于权限的安全模型,涉及到用户、组和文件权限;而Windows系统较为复杂,涉及ACL(访问控制列表)等概念。
  • 软件安装: Linux中通常使用包管理器(如APT、YUM)安装软件,而Windows则通过安装程序或应用商店进行软件安装。
  • 网络设置: 网络配置在两个系统中也有不同,了解网络设置差异有助于排查网络问题。

通过深入了解这些不同点,并学会灵活运用适当的解决方案和技巧,可以更好地管理、维护和迁移Windows和Linux系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode1261. Find Elements in a Contaminated Binary Tree

文章目录 一、题目二、题解 一、题目 Given a binary tree with the following rules: root.val 0 If treeNode.val x and treeNode.left ! null, then treeNode.left.val 2 * x 1 If treeNode.val x and treeNode.right ! null, then treeNode.right.val 2 * x 2 Now…

逆变器调试踩坑专题之测试设备

一个好的PV模拟器(DC直流源)是成功的一半 不同于实际现场的PV特性,现在各个测试设备生产厂家的PV模拟器(DC直流源)本身的控制频率和硬件自带的谐振频率会影响我们逆变器自身的控制环路。 如果DC直流源的控制环路和逆变…

leetcode16--最接近的三数之和

1. 题意 求最接近的三数之和 最接近的三数之和 2. 题解 与三数之和类似 class Solution { public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int sz nums.size();int sum nums[0] nums[1] nums[2];for (int i 0…

刷题日记——16进制不进位加法(厦门大学机试)

例题 分析 输入 本题解题关键在于输入的两个数位数不同时候需要尾数对齐&#xff0c;由于是16进制输入&#xff0c;含有字母&#xff0c;需要当作字符串输入&#xff0c;当然输出也要字母&#xff0c;那么就需要我们的两个老伙计了&#xff0c;一个是map&#xff0c;另一个是…

一文带你详解天池医疗数据集

医疗作为和民生健康息息相关的产业&#xff0c;通过天池大赛开放出一批有临床科研价值的数据集&#xff0c;涵盖了预防、辅诊、医学科研等主题。 与此同时&#xff0c;阿里云天池平台也积极推动产学研的共同进步&#xff0c;开源了多个本地生活领域的数据集&#xff0c;如aBea…

数据库类型转换

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 数据类型转换是指将一个数据类型的值转换为另一个数据类型的值的过程。数据类型转换通常发生在不同数据类型的比较、计算或赋值操作中。kingbase主要分为隐式转换和显示转换&#xff0c;本篇文章主要介绍这两种转换方…

2.经典项目-海量用户即使通讯系统

1.实现功能-完成注册用户 完成用户注册的步骤(客户端) 1.将User移动到common/message文件夹下 2.在message中新增注册用户的结构体 const (LoginMesType "LoginMes"LoginResMesType "LoginResMes"RegisterMesType "RegisterMes"…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

摘要&#xff1a;本文深入介绍了一个采用深度学习技术的危险物品识别系统&#xff0c;该系统融合了最新的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5等早期版本的性能。该系统在处理图像、视频、实时视频流及批量文件时&#xff0c;能够准确识别和分类各种危险物品…

设备点检管理系统的实施

设备点检管理系统的实施包括以下关键步骤&#xff1a; 确定检查对象和范围&#xff1a;根据生产需求和设备重要性&#xff0c;确定需要纳入点检系统的设备范围&#xff0c;以便有针对性地进行后续管理与监控。 制定点检计划&#xff1a;制定详细的点检计划&#xff0c;包括检…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十二)-Multi-RTT定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

NXP Auto HVBMS S32DS 参数配置卡顿解决办法:使用 EB 替代 S32DS Configuration Tools

一、背景介绍 用户在 Automotive Software Package Manager | NXP Semiconductors 可以下载 S32K344 或者是 S32K358 的 HVBMS 捆绑包。 其中包含有 IDE&#xff1a;S32DS&#xff0c;基于 S32DS 的基础软件包以及 RTD 插件包&#xff0c;MCAL 配置工具&#xff1a;EB …

【PHP+代码审计】PHP基础——流程控制

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

QT网络编程之实现TCP客户端和服务端

一.QT5.12实现TCP客户端和服务端功能 1.QT中实现TCP通信主要用到了以下类&#xff1a;QTcpServer、QTcpSocket、QHostAddress 2.基本流程&#xff1a; 使用QTcpServer来创建一个TCP服务器&#xff0c;在新的连接建立时&#xff0c;将新建立连接的socket添加到列表中&#xf…

Ubuntu 安装腾讯会议

1.官网下载 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 若不知道自己的系统架构,输入 uname -a 在命令行结果中查看系统架构信息 2.终端命令安装 cd {你的下载路径} sudo dpkg -i TencentMeeting_0300000000_3.19.0.401_x86_64_default.publi…

mysql对索引的选择简述

概述 在业务中经常会优化一些mysql的慢查询&#xff0c;通常都是使用explain去查看分析&#xff0c;检查扫描行数和索引的命中情况&#xff1b; 但是在具体索引的选择上&#xff0c;explain结果中并没有直接展示出来&#xff1b; 此时可以开启mysql的追踪优化器Trace功能&…

如何进行专利布局与专利规避

一、专利布局 WHY 专利布局是指企业或个人在科研或生产过程中&#xff0c;为了保护和利用自身的技术成果&#xff0c;通过综合产业、市场和法律等因素&#xff0c;对专利进行有机结合&#xff0c;构建严密高效的专利保护网&#xff0c;最终形成对企业或个人有利的专利组合。 …

使用TVMC Python

将使用resnet50 v2模型&#xff1a; mkdir myscripts cd myscripts wget https://github.com/onnx/models/raw/b9a54e89508f101a1611cd64f4ef56b9cb62c7cf/vision/classification/resnet/model/resnet50-v2-7.onnx mv resnet50-v2-7.onnx my_model.onnx touch tvmcpythonintro…

Cannot set priority of namenode process 8095

报错信息 报错&#xff1a; Cannot set priority of namenode process 8095 查看日志文件&#xff1a; 2024-03-10 01:36:50,840 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT] 2024-03-10 01:36:51,061 I…

10、Redis分布式系统之数据分区算法

Redis分布式系统之数据分区算法 1、什么是Redis分布式系统 ​ Redis分布式系统&#xff0c;官方称为Redis Cluster, Redis集群&#xff08;这个集群和前面的主从复制集群不同&#xff0c;这个集群可以理解为是多个主从复制集群所组成的集群&#xff09;&#xff0c;其实是Red…

C# RAM Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# RAM Stable Diffusion 提示词反推 Onnx Demo 介绍 github地址&#xff1a;GitHub - xinyu1205/recognize-anything: Open-source and strong foundation image recognition models. Open-source and strong foundation ima…