当前位置: 首页 > java >正文

Linux 下依赖库的问题

设你在 某用户 user_name 下安装了一个 rquests库。

然后你在命令行使用 python3 -c (...)验证。发现没有任何问题。

然后你使用python3 xxx.py 发现执行验证也没有问题。

这个时候你信心慢慢的写了一个C的代码在代码中system调用这个.py文件。

然后执行: sudo ./a.out 

结果:
>>> import requests Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'requests

为啥捏??

因为你的request在你的用户工作目录下,但是sudo会更改工作目录,python找不到你的模块了。

那直接sudo install requests全局安装不完了嘛?

对!但不完全对。 在root下安装各种依赖库还是非常危险的,容易版本冲突。

那咋办呢?

这就是主题了:

Python下的虚拟环境:

可以这样比喻:假设你有一台电脑,系统自带的Python环境是“公共厨房”,所有用户(包括root)都在这里做饭。而虚拟环境就像是你自己在厨房里搭建的一个“独立料理台”,所有食材(依赖库)和厨具(解释器)都放在这个台子上,不会和其他人的混用。

创建方法:

# 创建虚拟环境
python3 -m venv venv# 激活虚拟环境
source venv/bin/activate# 安装依赖(仅在此环境中生效)
pip install requests# 退出虚拟环境
deactivate
  1. python3 -m venv venv

    • 这会在当前目录下创建一个名为 venv 的文件夹。

    • 该文件夹内包含:

      • 一个独立的Python解释器副本(venv/bin/python)。

      • 一个独立的库安装目录(venv/lib/python3.x/site-packages),所有通过 pip install 安装的库会放在这里。

    • 效果:这个环境与系统的Python环境完全隔离。

  2. source venv/bin/activate 激活虚拟环境后,命令行提示符通常会显示环境名称(如 (venv))。

  3. deactivate 退出虚拟环境,恢复使用系统默认的Python环境。

最后记得,在调用的地方不能直接 system(“python ...”),要使用这里的python:

system("/home/username/project/venv/bin/python Upload.py");

http://www.xdnf.cn/news/704.html

相关文章:

  • (4)Vue的生命周期详细过程
  • 力扣每日一题781题解-算法:贪心,数学公式 - 数据结构:哈希
  • windows服务器及网络:论如何安装(虚拟机)
  • 无意间发现的宝藏项目:开源世界中的演示项目精选合集
  • 爬虫学习——Spider和Selector
  • 快速下载Node.js
  • 【计算机网络 | 第三篇】常见的网络协议(二)
  • 山东大学软件学院创新项目实训开发日志(20)之中医知识问答自动生成对话标题bug修改
  • 使用 Selenium 进行 Web 自动化:详细操作指南
  • 网络安全知识点3
  • strings.SplitN 使用详解
  • GESP2024年12月认证C++八级( 第一部分选择题(1-5))
  • 【大模型】单选数据集制作举例
  • 多态的学习与了解
  • 【Vulkan 入门系列】创建帧缓冲、命令池、命令缓存,和获取图片(六)
  • 深入理解基线检查:网络安全的基石
  • 【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】
  • 基于SpringBoot3实现MyBatis-Plus(SSMP)整合快速入门CURD(增删改查)
  • 深度学习总结(24)
  • idea中导入从GitHub上克隆下来的springboot项目解决找不到主类的问题
  • 【Python爬虫详解】第二篇:HTML结构的基本分析
  • UE虚幻4虚幻5动画蓝图调试,触发FellOutOfWorld事件和打印输出,继续DeepSeek输出
  • OSPF特殊区域
  • 对于在线教育或知识付费类网站视频处理方案
  • INFINI Console 系统集群状态异常修复方案
  • Beszel​​ 轻量级服务器监控平台的详细安装步骤
  • 【某比特币网址请求头部sign签名】RSA加密逆向分析
  • kotlin知识体系(五) :Android 协程全解析,从作用域到异常处理的全面指南
  • 论文阅读:2023 arxiv A Survey of Reinforcement Learning from Human Feedback
  • 机制的作用