同一个康达环境中的多个入口点

2024-06-09 15:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图在我的conda env中创建第二个入口点。原因是两个包使用相同的environment.yml,但都是独立的包,除了环境之外没有其他重叠

这些入口点定义了特定包的Click命令(scripts目录中的cli.py)的起点。然而,当我激活我的环境并尝试对Makefile中的项目设置步骤中安装的第二个包(mypackage2)运行click命令时,我得到一个modulenofounderror:没有名为'scripts.cli2'的模块。package1的click命令工作得非常好

项目结构

/projects
    /src
        /mypackage1
            /scripts
                cli.py
                ...
            /tests
            README.md
            setup.py
        /mypackage2
            /scripts
                cli2.py
                ...
            /tests
            README.md
            setup.py
    environment.yml
    Makefile

设置.py

每个包都有一个单独的setup.py文件

from setuptools import setup, find_packages

setup(
    name="mypackage1",
    version="0.1",
    packages=find_packages(),
    include_package_data=True,
    entry_points="""
        [console_scripts]
        mypackage1=scripts.cli:cli
    """,
)
from setuptools import setup, find_packages

setup(
    name="mypackage2",
    version="0.1",
    packages=find_packages(),
    include_package_data=True,
    entry_points="""
        [console_scripts]
        mypackage2=scripts.cli2:cli
    """,
)

生成文件

SHELL := /bin/bash

setup: env-setup module-setup

env-setup:
    conda env update -f environment.yml
    source activate projects && python -m ipykernel install --user --name projects

module-setup: projects-setup

projects-setup: 
    source activate projects && pip install -e src/mypackage1 && pip install -e src/mypackage2

我试过看的几件事是:

  • 只安装一个包以查看包的设置中是否有错误,但两者都可以正常工作
  • 更改了文件和目录命名以查看是否有任何影响

不知道还能看什么或尝试什么。一切似乎都符合Click文档。 在环境中只能有一个入口点吗

感谢您的帮助


Tags: py命令envclienvironment环境packagesyml