dav*_*one 5 python pyproject.toml python-pdm
我之前已经安排了一个没有src文件夹的 Python 存储库,并使用以下命令运行它:
pdm install --dev
pdm run mymodule
Run Code Online (Sandbox Code Playgroud)
我无法使用文件夹在存储库中复制该过程src。我该怎么做?
pyproject.toml
[project]
name = "mymodule"
version = "0.1.0"
description = "Minimal Python repository with a src layout."
requires-python = ">=3.10"
[build-system]
requires = ["pdm-pep517>=1.0.0"]
build-backend = "pdm.pep517.api"
[project.scripts]
mymodule = "cli:invoke"
Run Code Online (Sandbox Code Playgroud)
src/mymodule/__init__.py
空的文件。
src/mymodule/cli.py
def invoke():
print("Hello world!")
if __name__ == "__main__":
invoke()
Run Code Online (Sandbox Code Playgroud)
通过上面的配置,我可以pdm install --dev但pdm run mymodule失败了:
Traceback (most recent call last):
File "/home/user/Documents/mymodule/.venv/bin/mymodule", line 5, in <module>
from cli import invoke
ModuleNotFoundError: No module named 'cli'
Run Code Online (Sandbox Code Playgroud)
您需要按如下方式修改pyproject.toml :
[project.scripts]
mymodule = "mymodule.cli:invoke"
Run Code Online (Sandbox Code Playgroud)
为了更好地衡量,您可能需要在再次运行之前删除.venv文件夹和.pdm.toml文件pdm install --dev。