使用从bdist_rpm安装的模块时pkg_resources.DistributionNotFound

时间:2016-02-17 12:46:04

标签: python python-2.7 rpm setuptools

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

    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

我尝试使用以下文件创建一个裸骨应用程序以使其工作但我仍然得到相同的异常

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

创建rpm

修改

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

1 个答案:

答案 0 :(得分:1)

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

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