python - pip-tools 不会将依赖项安装到激活的 virtualenv
问题描述
我希望使用 pip-tools 将我的需求文件分为开发(requirements-dev.txt)和生产(requirements.txt)。
我已经使用 pipx 安装了 pip-tools,因为我希望它在全球范围内可用但被隔离。但是,这样做会导致我的依赖项由 pip-tools 安装在 pip-tools 本身的虚拟环境中,而不是激活的虚拟环境中。
我不知道这是否是一个因素,但我也在使用 pyenv 来管理我的 python 版本,但全局只安装了一个(非系统)版本。
给定我的环境(即使用 pipx 安装的 pip-tools,由 pyenv 管理的 python),我如何在激活的虚拟环境pip-sync
中安装依赖项?
这是我重现这一点的工作流程:
# Install pip-tools globally
pipx install pip-tools
# Create a virtual environment and activate it
python -m venv venv
source venv/bin/activate
# Create prod/dev requirement input files (see below for content)
# Autogenerate requirement files
pip-compile requirements.in
pip-compile requirements-dev.in
# Install all dependencies
pip-sync requirements.txt requirements-dev.txt
# Check what is installed (outputs nothing)
pip freeze
# Check what is installed in pip-tools virtual env
~/.local/pipx/venvs/pip-tools/bin/python -m pip freeze
# output shows flask, pytest, and their dependencies
生产依赖文件
# requirements.in
flask
开发依赖文件
# requirements-dev.in
-c requirements.txt
pytest
解决方案
--python-executable
您可以使用选项(在 6.2.0 中引入)在任何环境中安装软件包:
pip-sync --python-executable venv/bin/python requirements.txt requirements-dev.txt
推荐阅读
- sql - 需要 oracle 查询将多行合并为一行,每行一列
- java - 无法通过 USB 连接 Java 桌面应用程序和 Android 应用程序
- java - 我如何使用 Alladin 令牌证书对网站进行身份验证
- python-3.x - 在 Python 3.7 中如何仅在未设置时打印日志名称
- javascript - 询问不能直接转换为手动实现的异步迭代的异步生成器的示例
- react-native - 如何获取我的 expo 移动应用程序的重定向 URL 以通过 ecobee api OAuth 进行身份验证?
- angular - 动态修改行为主体流
- linux - 为什么我不能在 cron 上安排工作?
- r - R latticeExtra c.trellis 中缺少右刻度线
- javascript - 如何将拖动的项目重叠在拖放的项目上?