我如何使用 && 运行 两个带有 pipenv 脚本的命令?
How do I run two commands with pipenv scripts using &&?
使用 cargo 和 npm 很容易做到这一点。
当我 运行 它来自 shell $ pylint src && pylint tests
时,我没有问题。
但是当我 运行 它作为 pipenv 脚本时
[scripts]
lint = "pylint src && pylint tests"
$ pipenv run lint
************* Module &&
&&:1:0: F0001: No module named && (fatal)
Pylint 认为 &&
是另一个模块。
pipenv 运行time 不仅仅是终端吗?
正如他们 GitHub 跟踪器的 this issue 所指出的,这是由以下事实引起的:
this is to difficult to get right, especially since Pipenv needs to support a cross-platform experience
来源:https://github.com/pypa/pipenv/issues/2038#issuecomment-387506323
问题报告本身有一个解决方法可能很适合您:
[scripts]
lint = "bash -c 'pylint src && pylint tests'"
pipenv
他们追踪器上的相关问题:
- https://github.com/pypa/pipenv/issues/2878 — 此处维护者的回答更多地说明了实施此操作会导致的可移植性问题
- https://github.com/pypa/pipenv/issues/2283 — is interesting because it offers another solution, which is to use PyInvoke
- https://github.com/pypa/pipenv/issues/2160
- https://github.com/pypa/pipenv/issues/2038
使用 cargo 和 npm 很容易做到这一点。
当我 运行 它来自 shell $ pylint src && pylint tests
时,我没有问题。
但是当我 运行 它作为 pipenv 脚本时
[scripts]
lint = "pylint src && pylint tests"
$ pipenv run lint
************* Module &&
&&:1:0: F0001: No module named && (fatal)
Pylint 认为 &&
是另一个模块。
pipenv 运行time 不仅仅是终端吗?
正如他们 GitHub 跟踪器的 this issue 所指出的,这是由以下事实引起的:
this is to difficult to get right, especially since Pipenv needs to support a cross-platform experience
来源:https://github.com/pypa/pipenv/issues/2038#issuecomment-387506323
问题报告本身有一个解决方法可能很适合您:
[scripts]
lint = "bash -c 'pylint src && pylint tests'"
pipenv
他们追踪器上的相关问题:
- https://github.com/pypa/pipenv/issues/2878 — 此处维护者的回答更多地说明了实施此操作会导致的可移植性问题
- https://github.com/pypa/pipenv/issues/2283 — is interesting because it offers another solution, which is to use PyInvoke
- https://github.com/pypa/pipenv/issues/2160
- https://github.com/pypa/pipenv/issues/2038