pkg_resources.DistributionNotFound 使用从 bdist_rpm 安装的模块时 [英] pkg_resources.DistributionNotFound when using a module installed from a bdist_rpm

查看:34
本文介绍了pkg_resources.DistributionNotFound 使用从 bdist_rpm 安装的模块时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建我构建的 CLI 工具的 rpm.正在创建 rpm 并且安装没有错误.但是,当我尝试使用 CLI 时,出现以下异常:

I am trying to create a rpm of a CLI tool I have built. The rpm is being created and is installing without errors. However, when I try to use the CLI I get the following exception:

    Traceback (most recent call last):
          File "/usr/local/bin/my_project", line 5, in <module>
            from pkg_resources import load_entry_point
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 3141, in <module>
            @_call_aside
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 3127, in _call_aside
            f(*args, **kwargs)
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 3154, in _initialize_master_working_set
            working_set = WorkingSet._build_master()
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 640, in _build_master
            ws.require(__requires__)
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 941, in require
            needed = self.resolve(parse_requirements(requirements))
          File "/usr/lib/python2.7/site-packages/setuptools-20.1.1-py2.7.egg/pkg_resources/__init__.py", line 828, in resolve
            raise DistributionNotFound(req, requirers)
        pkg_resources.DistributionNotFound: The 'my-project==0.1.0' distribution was not found and is required by the application

我尝试使用以下文件创建一个简单的应用程序以使其正常工作,但我仍然遇到相同的异常

I tried to create a bare bones application with just following files to get it to work but I still get the same exception

project/setup.py

import sys

def main(args=None):
     print("Do Something")

if __name__ == "__main__":
    main()

然后project/my_project/__main__.py

from setuptools import setup

setup(name='my_project',
    version='0.1.0',
    packages=['my_project'],
    entry_points={
        'console_scripts': [
            'my_project = my_project.__main__:main'
        ]
     },
)

我正在使用命令 python setup.py bdist_rpm

编辑

原因是 my_project 被安装到 usr/local/lib 而不是/usr/lib.如何更改默认路径?

The reason is my_project is being installed to usr/local/lib instead of /usr/lib. How can I change the default path?

推荐答案

我最终只是使用 --install-script 标志指定了一个自定义安装脚本,该标志使用了 setup.py install 的前缀选项

I eventually just specified a custom install script using the --install-script flag that used the prefix option for setup.py install

安装脚本的内容:python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --prefix/usr

这篇关于pkg_resources.DistributionNotFound 使用从 bdist_rpm 安装的模块时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆