![](/img/trans.png)
[英]How to remove a pipenv's PipFile, PipFile.lock and associated virtualenv?
[英]How can I check that the installed packages match Pipfile.lock using pipenv?
在我的測試中,我想運行一個命令來確保我的虛擬環境中安裝的包與Pipfile.lock
中找到的包相匹配。
有這樣的命令嗎?
pipenv checkifinstalled || exit 1
這個問題可以簡化為以下兩個步驟:
將Pipfile.lock
轉換為requirements.txt
文件(采用pip freeze
生成的格式)。
pipenv requirements
(或pipenv requirements --dev
)輕松完成。 (請注意,此命令在 pipenv >= 2022.4.8 中受支持) 檢查安裝的包是否與生成的requirements.txt
文件匹配。
以下是我如何將它們放在一起進行測試:
import pkg_resources
import subprocess
import unittest
class DependencyChecks(unittest.TestCase):
def test_requirements_installed(self):
requirements_lines = subprocess.check_output(["pipenv", "requirements", "--dev"], text=True).splitlines()
req_lines = [line for line in requirements_lines if not line.startswith("-i ")]
requirements = pkg_resources.parse_requirements(req_lines)
for requirement in requirements:
req = str(requirement)
with self.subTest(requirement=req):
pkg_resources.require(req)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.