检查requirements.txt文件与您的环境之间的差异。
项目描述
检查requirements.txt文件与当前环境之间的差异。
安装
使用以下命令安装:python -m pip install pip-lock。
支持Python 3.8到3.12。
正在处理Django项目? 查阅我的书籍提升您的Django开发体验,其中涵盖了多种提高您开发体验的方法。
示例用法
在应用程序启动时调用 pip_lock.check_requirements() 以验证当前虚拟环境是否符合您的需求文件。这为更改分支等开发人员提供即时反馈,否则他们可能会由于需求不一致而遇到意外的行为或错误。
在Django项目中,将检查添加到 manage.py 文件中是有意义的,这是项目的主要入口点。您可以在导入Django之后添加对 pip_lock.check_requirements() 的调用。例如
#!/usr/bin/env python
import os
import sys
from pathlib import Path
def main():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
try:
import pip_lock
except ImportError:
raise ImportError(
"Couldn't import pip-lock. Are you on the right virtualenv and up "
+ "to date?"
)
requirements_path = str(Path(__file__).parent / "requirements.txt")
pip_lock.check_requirements(
requirements_path,
post_text="\nRun the following:\n\npython -m pip install -r requirements.txt\n",
)
execute_from_command_line(sys.argv)
if __name__ == "__main__":
main()
API
check_requirements(requirements_file_path: str, post_text: str='')) -> None
如果环境与需求文件之间存在不匹配,则使用退出代码1退出并输出到stderr。
requirements_file_path 是 requirements.txt 文件的路径 - 我们建议使用绝对文件路径。
post_text 是可选文本,它显示在stderr消息之后。这可以用来显示如何更新需求的说明。
示例
check_requirements(
"requirements.txt",
post_text="\nRun the following on your host machine: \n\n vagrant provision\n",
)
There are requirement mismatches with requirements.txt:
* Package Django has version 1.9.10 but you have version 1.9.0 installed.
* Package requests has version 2.11.1 but you have version 2.11.0 installed.
* Package requests-oauthlib is in requirements.txt but not in virtualenv
Run the following on your host machine:
vagrant provision
get_mismatches(requirements_file_path: str) -> dict[str, tuple[str, str | None]]
返回一个包含不匹配包的包名到 (预期版本,实际版本) 的字典。
requirements_file_path 是 requirements.txt 文件的路径 - 我们建议使用绝对文件路径。
示例
>>> get_mismatches("requirements.txt")
{'django': ('1.10.2', '1.9.0'), 'requests': ('2.11.1', '2.9.2'), 'request-oauthlib': ('0.7.0', None)}
关闭
pip_lock-2.11.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3fe59dcfd368e5fc7f892741d75ec72db3effdea60b3a57c8f04acf01c424f51 |
|
MD5 | 9f43ee56c69d7772b4f5895718ba9c94 |
|
BLAKE2b-256 | 9e3200d7ba71ca059ca5e5d8f4c3f48e8d289a3607988876c1ba8baa28150315 |
关闭
pip_lock-2.11.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3024251b8a9ae3fba04f99fc219f5cd5b1452be8f0068156d157503b8e66a5b8 |
|
MD5 | 22c1c326eaeca51cdabe12731c72a51b |
|
BLAKE2b-256 | c7a59f4db66ef4f15543104c2da8dbb13bc8345adf150d116fc4b65c863d7a56 |