How to use python in venv: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
No edit summary
Tag: Manual revert
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== pip 不要 sudo ==
== pip 不要 sudo ==
不要用 sudo pip install xxx 安装系统级别的包。
不要用 sudo pip install xxx 安装系统级别的包。不要用 sudo pip,它会改写系统层面的配置。


用 apt 或 pacman 等系统层面的包管理工具,安装系统层面的应用,如 sudo pacman -S python-requests
用 apt 或 pacman 等系统层面的包管理工具,安装系统层面的应用,如 sudo pacman -S python-requests
Line 6: Line 6:
== 用好 venv ==
== 用好 venv ==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
python -m venv venv
python -m venv venvsth
source venv/bin/activate
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements.txt
</syntaxhighlight>
</syntaxhighlight>


* 只要你已经执行了 source venvwhisper/bin/activate,无论你身处哪个目录,pip install 安装的内容都只会写入虚拟环境,不会污染系统。
* 只要你已经执行了 source venvsth/bin/activate,无论你身处哪个目录,pip install 安装的内容都只会写入虚拟环境,不会污染系统。
* 每个项目一个虚拟环境,保持依赖隔离。错了就删,没有后遗症
* 每个项目一个虚拟环境,保持依赖隔离。错了就删,没有后遗症
* venv 中安装包不需要 sudo。
* venv 中安装包不需要 sudo。

Latest revision as of 11:55, 29 May 2025

pip 不要 sudo

不要用 sudo pip install xxx 安装系统级别的包。不要用 sudo pip,它会改写系统层面的配置。

用 apt 或 pacman 等系统层面的包管理工具,安装系统层面的应用,如 sudo pacman -S python-requests

用好 venv

python -m venv venvsth
source venv/bin/activate
pip install -r requirements.txt
  • 只要你已经执行了 source venvsth/bin/activate,无论你身处哪个目录,pip install 安装的内容都只会写入虚拟环境,不会污染系统。
  • 每个项目一个虚拟环境,保持依赖隔离。错了就删,没有后遗症
  • venv 中安装包不需要 sudo。
  • deactivate 可退出虚拟环境。

wheel 作用

  • wheel 是一种 预先打包好的、可直接安装的格式。
  • 里面已经包含编译好的代码(如果有需要编译的部分)。
  • 安装速度更快,也更稳定(不依赖你的系统有没有某些编译器、C 库等)。