我正在尝试开发一个可导入的python包,并且还有从shell调用的entry_point。
尝试调用入口点时,我得到:
pkg_resources.VersionConflict: (pysec-aws 0.1.dev1 (/Users/myuser/PycharmProjects/pysec-aws), Requirement.parse('pysec-aws==0.1.dev0'))
基本上我在收到此错误之前所做的是将setup.py中的版本从0.1.dev0
增加到0.1.dev1
,然后运行python setup.py sdist
然后pip install -e .
我做错了什么?安装正在开发和捆绑setuptools的软件包的开发版本的正确方法是什么?
答案 0 :(得分:1)
错误是抱怨应用程序版本与setup.py中声明的版本不匹配。请尝试检查应用中的__version__
设置。
您可以考虑使用该版本的单一来源来避免此问题。 https://packaging.python.org/guides/single-sourcing-package-version/列出了许多不同的选项。如果没有任何外部依赖,一种简单的技术是
import myapp
setup(
...
version=myapp.__version__
...
)
答案 1 :(得分:0)
解决此问题的唯一方法是创建一个新的virtualenv。
显然我的virtualenv/bin
已经编译了(.pyc
)和非编译(.py
)由于某些原因对旧版本的引用 - 当我安装时它们可能没有升级/删除新版本。
一旦我创建了新的virtualenv并重新安装了所需的软件包,我就能够解决这个问题。