【问题标题】:Can't install my script properly via setup.py无法通过 setup.py 正确安装我的脚本
【发布时间】:2020-01-01 20:26:00
【问题描述】:

我想让我的脚本可以通过 pip 安装,我写了一个 setup.py 文件,但是安装不正常。

让我们假设以下情况。我有一个名为 hello_world_project 的项目。项目内部有两个文件夹。第一个文件夹称为 hello_world_project,第二个是包含 unittests 的测试文件夹。

hello_world_project 文件夹内是子目录。结构如下:

  • hello_world_project/folder_1
  • hello_world_project/folder_2
  • hello_world_project/images

folder_1 和 folder_2 都包含 __init__.py 文件,而 images 文件夹包含简单的 png。

我的 setup.py 看起来像这样:

from setuptools import setup, find_packages

setup(
    (...)
    packages=find_packages("hello_world_project"),
    package_dir={"": "hello_world_project"},
    entry_points={
        'console_scripts': [
            'hello_world = hello_world_project.main:main'
        ]
    },
    (...)
)

当我通过 pip install 安装包时。 包在我的 venv 中被拆分。 我的 venv 的 lib 文件夹没有 hello_world_project 文件夹。相反,我的 venv lib 文件夹中有一个 folder_1、folder_2 和 images 文件夹。

我尝试了不同的方法,但是当我将 setup.py 更改为 i 时。 e.这个:

    from setuptools import setup, find_packages

    setup(
        (...)
        packages=find_packages("hello_world_project"),
        package_dir={"hello_world_project": "hello_world_project"},
        entry_points={
            'console_scripts': [
                'hello_world = hello_world_project.main:main'
            ]
        },
        (...)
    )

我收到以下错误消息:错误:包目录 'folder_1' 不存在

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    我找到了解决方案。我更改了 setup py 并明确包含文件夹。

    from setuptools import setup, find_packages
    
    setup(
        (...)
        packages=["hello_world_project", "hello_world_project.folder_1", "hello_world_project.folder_2"],
        entry_points={
            'console_scripts': [
                'hello_world = hello_world_project.main:main'
            ]
        },
        (...)
    )
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多