【问题标题】:Why won't my python module install?为什么我的 python 模块无法安装?
【发布时间】:2023-04-01 00:45:01
【问题描述】:

我正在尝试构建一个pulp distributor plugin,它将执行一个包含任意代码的 bash 脚本,以便在发布 RPM 存储库后触发操作。

这些插件通常使用distutils 创建。但是,当我尝试安装我的模块时,我收到错误:

warning: install_lib: 'build/lib' does not exist -- no Python modules to install

通常,这意味着working directory is incorrect__init.py__ is missing。然而,在我的情况下,我试图从正确的工作目录安装并且我确实创建了 __init.py__ 文件(请参阅 repo here)。

我怀疑我遇到了一个路径问题,这与我的代码位于到目前为止从 setup.py 中删除的子目录中有关。我究竟做错了什么?为什么我的模块无法安装?

【问题讨论】:

    标签: python setup.py site-packages


    【解决方案1】:

    当您遇到此类错误时,首先要检查的事情之一是在您构建发行版时实际添加了哪些软件包。在您的情况下,包列表为空,但至少应包含 pulp_hook 包:

    $ python -c "from setuptools import find_packages; print(find_packages())"
    []
    

    那么为什么setuptools 不能将pulp_hook 识别为常规包?查看其结构:您添加了名为__init.py__ 的文件,但添加了its name should be __init__.py。重命名文件后,pulp_hook 及其子目录将成为常规包:

    $ python -c "from setuptools import find_packages; print(find_packages())"
    ['pulp_hook', 'pulp_hook.plugins', 'pulp_hook.plugins.distributors']
    

    现在build/lib 将被创建,因为现在distutils 找到至少一个要安装的包:

    $ python setup.py install_lib
    running install_lib
    running build_py
    creating build
    creating build/lib
    creating build/lib/pulp_hook
    copying pulp_hook/__init__.py -> build/lib/pulp_hook
    creating build/lib/pulp_hook/plugins
    copying pulp_hook/plugins/__init__.py -> build/lib/pulp_hook/plugins
    creating build/lib/pulp_hook/plugins/distributors
    copying pulp_hook/plugins/distributors/distributionhook.py -> build/lib/pulp_hook/plugins/distributors
    copying pulp_hook/plugins/distributors/__init__.py -> build/lib/pulp_hook/plugins/distributors
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-04
      • 2022-12-18
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 2020-09-19
      相关资源
      最近更新 更多