Python 错误:在路径中找不到命令((来自my_脚本)
在使用Pipenv和Pytest处理PythonFastAPI项目时,我被要求编写一个Pipenv脚本来运行测试 项目具有以下结构:Python 错误:在路径中找不到命令((来自my_脚本),python,bash,pipenv,Python,Bash,Pipenv,在使用Pipenv和Pytest处理PythonFastAPI项目时,我被要求编写一个Pipenv脚本来运行测试 项目具有以下结构: . ├── app | ├── main.py │ ├── my_package │ │ ├── __init__.py │ │ ├── (project folders) │ │ └── tests | | └── tests.py │ └── __pycache__ └──(deployment script
.
├── app
| ├── main.py
│ ├── my_package
│ │ ├── __init__.py
│ │ ├── (project folders)
│ │ └── tests
| | └── tests.py
│ └── __pycache__
└──(deployment scripts and folders, Pipfile, Dokerfile, etc)
我想从顶部结构(./app/../tests.py)对tests.py运行Pytest,至少现在是这样
根据建议,我目前使用以下工具从顶部运行它们:
( cd app ; python -m pytest my_package/tests/tests.py )
…这正是我们所期待的
但是,当我添加“我的Pipfile脚本”部分时:
[scripts]
my_script = "( cd app ; python -m pytest my_package/tests/tests.py )"
…使用以下命令运行它:
pipenv run my_script
我得到一个错误:
Error: the command ( (from my_script) could not be found within PATH.
我也试过:
[scripts]
my_script = "cd app && python -m pytest my_package/tests/tests.py"
…这将返回另一个类似的错误:
Error: the command cd (from my_script) could not be found within PATH.
所以很明显我用它作为bash别名是错误的。
我已经尝试过像我一样搜索更多关于[scripts]部分如何工作的文档,但我(还)运气不佳。我不熟悉您正在使用的工具,但错误消息表明它正在寻找可执行文件。
(
是shell语法的一部分,cd
是shell内置文件,而不是可执行文件。尝试以下操作:
my_script = "bash -c 'cd app && python -m pytest my_package/tests/tests.py'"
这里的bash
是可执行文件,-c
使其运行您的代码段
顺便说一句,请记住,
cd
可能会失败,因此如果失败,脚本应该退出。如果添加echopath=“echo%PATH%”
并运行它,将打印什么?除此之外,pipenv在我的Linux和MacOS机器上计算cd x&&y
到cd'x&&y'
,无法找到目录x&&y
,因此这可能不会让您走得更远。无法按照您的要求执行,因为我遇到了一个错误:错误:命令echopath(来自我的脚本测试)在路径中找不到。但是,感谢您提供有关pipenv如何评估cmd:)@wjandrea的解决方案对我有效的信息。此外,由于“&&”,它可以完全恢复,也谢谢您