如何执行Pipfile中定义的脚本?已尝试多种方式未成功
Pipenv Scripts 调用问题排查与解决
嘿,我来帮你搞定这个Pipenv脚本调用的问题!你在Pipfile的[scripts]段定义的tests = "bash ./run-tests.sh"语法是完全正确的,标准的调用方式确实是pipenv run tests——如果这个命令没生效,大概率是下面几个常见问题导致的,咱们逐一排查:
工作目录与脚本路径不匹配
你用的./run-tests.sh是相对路径,意味着执行pipenv run tests时,你的终端工作目录必须和run-tests.sh所在的目录一致。比如如果脚本在项目根目录,那你得先通过cd命令进入项目根目录,再执行调用命令。脚本缺少可执行权限
在Linux/macOS环境下,.sh脚本需要拥有可执行权限才能被正常调用。你可以在终端执行chmod +x run-tests.sh给脚本添加执行权限,之后甚至可以把脚本定义简化成tests = "./run-tests.sh"(当然保留bash前缀也没问题)。Pipenv版本过旧
部分早期版本的Pipenv对[scripts]段的解析存在兼容性问题,建议升级到最新稳定版本:pip install --upgrade pipenv虚拟环境内调用的前提
如果你通过pipenv shell进入了虚拟环境,直接执行tests理论上也能生效,但同样需要满足上面的路径、权限要求,且Pipenv版本支持该特性(新版本均支持)。
总结一下:先确认工作目录正确、脚本有权限,升级Pipenv到最新版,再执行pipenv run tests,应该就能成功调用你的测试脚本了。
内容的提问来源于stack exchange,提问作者cstoltze
相关产品推荐
相关产品推荐

