当前位置: 首页 > 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章 无线通信网
  • 肖特基二极管详解:原理、作用、应用与选型要点
  • 分布式入门
  • 观察丨微短剧盛行“拿来主义”,版权保护迫在眉睫
  • 一图看懂|特朗普政府VS美国顶尖高校:这场风暴如何刮起?
  • 谁在向张福生行贿?
  • 习近平会见柬埔寨人民党主席、参议院主席洪森
  • A股三大股指涨跌互现:房地产板块大幅上涨,两市成交9995亿元
  • 塞尔维亚新政府正式成立,马楚特出任总理