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

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");

相关文章:

  • OV-Watch(一)(IAP_F411学习)
  • 【Part 2安卓原生360°VR播放器开发实战】第一节|通过传感器实现VR的3DOF效果
  • Milvus(1):什么是 Milvus
  • 21. git apply
  • 大模型技术解析与应用 | 大语言模型:从理论到实践(第2版)| 复旦大学 | 533页
  • 深度学习方向急出成果,是先广泛调研还是边做实验边优化?
  • springboot自动装配的原理
  • 修改PointLIO项目
  • RHCSA知识点
  • 2025-4-19 情绪周期视角复盘(mini)
  • Linux命令--将控制台的输入写入文件
  • C语言之高校学生信息快速查询系统的实现
  • RocketMQ实现基于可靠消息的最终一致性
  • electron打包是没有正确生成electron.exe,x ENOENT: no such file or directory, rename:
  • 位运算---总结
  • 微信小程序上传腾讯云
  • Dubbo QoS操作手册
  • 【网工第6版】第4章 无线通信网
  • 肖特基二极管详解:原理、作用、应用与选型要点
  • 分布式入门
  • “三桶油”一季度净赚966亿元:业绩分化加剧,有人欢喜有人愁
  • 解放日报:硬科企业由此迈出“市场第一步”
  • 铺就长三角南北“交通动脉”,乍嘉苏改高速扩建项目首桩入位
  • 百年传承,再启新程,参天中国迎来2.0时代
  • 中国科学院院士张泽民已任重庆医科大学校长
  • 上汽集团一季度净利润30.2亿元,同比增长11.4%