代码之家  ›  专栏  ›  技术社区  ›  Eytan Avisror

开发python包时无法加载python entry\u点

  •  1
  • Eytan Avisror  · 技术社区  · 7 年前

    我正在尝试开发一个可导入的python包,它还具有从shell调用的入口点。

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

    基本上,在出现此错误之前,我所做的是从 0.1.dev0 0.1.dev1 在设置中。py,和运行 python setup.py sdist 然后 pip install -e .

    我做错了什么?安装您正在积极开发并与setuptools捆绑的软件包的开发版本的正确方法是什么?

    2 回复  |  直到 7 年前
        1
  •  1
  •   user650881    7 年前

    错误表示应用程序版本与安装程序中声明的版本不匹配。py。尝试检查 __version__ 在应用程序中设置。

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

    import myapp
    setup(
        ...
        version=myapp.__version__
        ...
    )
    
        2
  •  0
  •   Eytan Avisror    7 年前

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

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

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