zab*_*bop 8 python python-black python-poetry
基于诗歌文档:
同样,如果您有命令行工具,例如
pytest或black您可以使用以下命令运行它们poetry run pytest
使用黑色的建议方法是:
poetry run black myscript.py
Run Code Online (Sandbox Code Playgroud)
但是,如果我只使用,我没有注意到行为有任何差异
black myscript.py
Run Code Online (Sandbox Code Playgroud)
这两种方法有什么区别?
Gin*_*pin 11
它允许您运行black(或随后出现的任何命令run)安装在虚拟环境中的命令,而无需先激活虚拟环境。
相关注释在poetry run文档中(强调我的):
\n\n该命令在 project\xe2\x80\x99s virtualenv 内
\nrun执行给定的命令。
假设您有一个带有main.py 的诗歌演示项目,并且安装了:black
poetry-demo$ ls\nREADME.rst main.py poetry.lock poetry_demo pyproject.toml tests\n\npoetry-demo$ poetry add black\nThe following packages are already present in the pyproject.toml and will be skipped:\n\n \xe2\x80\xa2 black\n\n...\nRun Code Online (Sandbox Code Playgroud)\n如果您不首先激活您的虚拟环境(即poetry shell)并且您的系统上没有black安装任何其他位置,那么简单的操作black file.py就会失败:
poetry-demo$ which black\n\npoetry-demo$ black main.py\n-bash: black: command not found\nRun Code Online (Sandbox Code Playgroud)\n但是,使用poetry run,即使不激活虚拟环境,您也可以运行black:
poetry-demo$ poetry run black main.py\nAll done! \xe2\x9c\xa8 \xe2\x9c\xa8\n1 file left unchanged.\nRun Code Online (Sandbox Code Playgroud)\n您感到困惑的根源可能是因为您已经激活了虚拟环境,所以实际上没有什么区别:
\npoetry-demo$ poetry shell\nSpawning shell within /path/to/virtualenvs/poetry-demo-hCA44HQ0-py3.8\npoetry-demo$ . /path/to/virtualenvs/poetry-demo-hCA44HQ0-py3.8/bin/activate\n\n(poetry-demo-hCA44HQ0-py3.8) poetry-demo$ black main.py\nAll done! \xe2\x9c\xa8 \xe2\x9c\xa8\n1 file left unchanged.\n\n(poetry-demo-hCA44HQ0-py3.8) poetry-demo$ poetry run black main.py\nAll done! \xe2\x9c\xa8 \xe2\x9c\xa8\n1 file left unchanged.\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5581 次 |
| 最近记录: |