× This environment is externally managed ╰─> To install Python packages system-wide, try brew install xyz, where xyz is the package you are trying to install. If you wish to install a Python library that isn't in Homebrew, use a virtual environment: python3 -m venv path/to/venv source path/to/venv/bin/activate python3 -m pip install xyz If you wish to install a Python application that isn't in Homebrew, it may be easiest to use 'pipx install xyz', which will manage a virtual environment for you. You can install pipx with brew install pipx You may restore the old behavior of pip by passing the '--break-system-packages' flag to pip, or by adding 'break-system-packages = true' to your pip.conf file. The latter will permanently disable this error. If you disable this error, we STRONGLY recommend that you additionally pass the '--user' flag to pip, or set'user = true'in your pip.conf file. Failure to do this can result in a broken Homebrew installation. Read more about this behavior here: <https://peps.python.org/pep-0668/>
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.
创建虚拟环境(名字随便,通常叫 venv)
1
python3 -m venv venv
激活虚拟环境
1
source venv/bin/activate
再次安装依赖
1
pip3 install -r requirements.txt
以后每次启动项目,先激活虚拟环境
1
source venv/bin/activate
激活后,命令行前面会多一个 (venv) 提示,说明你在虚拟环境里
1
(venv) mac@macdeMacBook-Pro ai-agent %
然后启动项目
1
python3 main.py
退出虚拟环境命令
1
deactivate
总结
问题来了,对a项目执行了python3 -m venv venv和source venv/bin/activate,这个时候需要安装b项目的依赖和启动b项目,同样在b项目的目录下面执行python3 -m venv venv和source venv/bin/activate,这样操作会和a项目的环境隔离冲突吗? 答案是不会。虚拟环境是独立的,每个虚拟环境都有自己的Python解释器和独立的依赖库。在a项目目录下创建的虚拟环境不会影响b项目目录下创建的虚拟环境。因此,你可以在a项目目录下创建虚拟环境并激活,然后在b项目目录下创建另一个虚拟环境并激活,这样就可以在两个不同的虚拟环境中分别安装和运行a项目和b项目了。 • 每个项目(a、b)都应该有自己的虚拟环境,这样依赖互不干扰。 • 你在 a 项目里建的 venv 只对 a 有效; • 你在 b 项目里再建一个 venv,只对 b 有效; • 它们之间完全 隔离,不会冲突。
正确操作流程
1 2 3 4 5
cd a python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python main.py # 或者对应的启动命令
针对 b 项目
1 2 3 4 5
cd b python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python app.py # 或者对应的启动命令
注意点 激活虚拟环境时,你只能用 一个环境。 • 如果你已经在 a/venv 里了,再去运行 b 项目,就会报依赖错误。 • 所以要先退出 a 的虚拟环境,再进入 b 的虚拟环境。