在开发python包时无法加载python entry_point

问题描述 投票:1回答:2

我正在尝试开发一个可导入的python包,并且还有从shell调用的entry_point。

当我试图调用入口点时,我得到: pkg_resources.VersionConflict: (pysec-aws 0.1.dev1 (/Users/myuser/PycharmProjects/pysec-aws), Requirement.parse('pysec-aws==0.1.dev0'))

基本上我在得到这个错误之前所做的就是将版本从0.1.dev0增加到setup.py中的0.1.dev1,然后运行python setup.py sdist然后运行pip install -e .

我究竟做错了什么?安装正在开发和捆绑setuptools的软件包的开发版本的正确方法是什么?

python pip setuptools entry-point
2个回答
1
投票

该错误是抱怨应用程序版本与setup.py中声明的版本不匹配。尝试检查应用程序中设置的__version__

您可以考虑为该版本使用单个源来避免此问题。 https://packaging.python.org/guides/single-sourcing-package-version/概述了许多不同的选项。一个简单的技术,如果没有任何外部依赖,是

import myapp
setup(
    ...
    version=myapp.__version__
    ...
)

0
投票

解决这个问题的唯一方法是创建一个新的virtualenv。

显然我的virtualenv/bin由于某种原因编译了(.pyc)和非编译(.py)对旧版本的引用 - 当我安装新版本时它们可能没有升级/删除。

一旦我创建了一个新的virtualenv并重新安装了所需的包,我就能够解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.