从项目外部运行孵化脚本

问题描述 投票:0回答:1

给定一个简单的孵化项目,从项目文件夹外部运行它的干净方法是什么?

更具体地说,假设我的项目

myproject
的根源在于
/home/me/projects/myproject/
pyproject.toml
和其他文件都位于其中。
pyproject.toml
文件包含一个可运行的脚本,如下所示。

[project.scripts]
myrunnable = "myproject.main:main"

假设我在我的用户文件夹中,

/home/me/
并且想要运行
myrunnable
。我可以先做
cd "/home/me/projects/myproject/"
然后
hatch run myrunnable
。但我发现在运行之前必须显式切换到项目文件夹,这很不优雅。如果可能的话,我更愿意输入类似
hatch --projectdir "/home/me/projects/myproject/" run myrunnable
的内容。 我知道我可以做
pushd "/home/me/projects/myproject/"; hatch run myrunnable; popd
(我目前使用的),但是有没有更正式和优雅的方法?

我已经尝试过

hatch --config "/home/me/projects/myproject/pyproject.toml" run myrunnable
但失败了,因为它尝试使用我当前所在位置(
myrunnable
)的工作目录运行
/home/me/
,而
myrunnable
期望在项目根目录中运行。

这个问题可能相关。)

hatch
1个回答
0
投票

我有一个类似的问题,我想使用 Makefile 并调用孵化而不需要 cd 到包中。

--config
参数并不是针对
pyproject.toml
,而是针对
config.toml
。您分享的问题参考其文档

这是我的设置方法:

  1. 文件夹结构:
.
├── config.toml
├── Makefile
└── projects
    └── my_project
        └── pyproject.toml

  1. config.toml
    的内容:
mode = "project"                    # Operate in project mode
project = "my_project"              # One of the specified projects

[projects]
my_project = "projects/my_project"  # Path to the project
  1. 从 Makefile 调用:
hatch --config config.toml env show
# or
# export HATCH_CONFIG:=path/to/config.toml

注意:对于我的用例,我不需要完整路径,但您也可以在

config.toml
中这样做,在这种情况下,从哪里调用它并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.