Python to .exe 引发异常:此项目的版本控制需要 sdist 压缩包



我正在尝试从Python文件构建可执行文件。我能够纠正大多数错误,但现在我被这个错误困住了,我找不到如何纠正它。我的程序与 Jira API 交互。

我正在使用Cx_Freeze使用以下设置.py文件构建.exe:

import sys
import setuptools
from cx_Freeze import setup, Executable
build_exe_options = {"includes": ["appdirs", "packaging.specifiers", 
"packaging.requirements", "setuptools.msvc", "jira"]}
setup(name="Quick", version="1.0", executables=[Executable("main.py")], 
options={"build_exe": build_exe_options},
install_requires=['selenium', 'jira', 'cx_Freeze'])

我在命令提示符下输入:python setup.py build并得到一个名为build的文件夹作为结果。它包含一个主.exe程序。当我从命令提示符启动它时,出现此错误:

例外:此项目的版本控制需要 sdist 压缩包或对上游 git 存储库的访问权限。安装程序中的包名称与提供给 pbr.version.Version.cfg 的参数之间也可能存在不匹配。项目名称为jira,但无法找到。

我尝试使用 pip 升级 Jira、设置工具和 disutils,但它没有改变任何东西。

我正在使用Python 3.6。

我终于开始工作了,并认为我应该分享我的结果,因为似乎很少有人一起使用 Jira 和cx_Freeze。看来cx_Freeze没有正确打包吉拉。以下是我为使脚本正常工作所做的工作。

首先,在 setup.py 中,我包含了这些软件包:

packages = ["os", "sys", "atexit", "getpass", "subprocess", "datetime", "dateutil", "jira", "openpyxl", "appdirs", "packaging"]

其中许多对每个人都不是必需的,但 jira、appdir 和包装帮助了我。

然后,在运行python setup.py build后,我复制了:

C:UsersmeAppDataLocalProgramsPythonPython36-32Libsite-packagesidna
C:UsersmeAppDataLocalProgramsPythonPython36-32Libsite-packagesidna-2.6.dist-info
C:UsersmeAppDataLocalProgramsPythonPython36-32Libsite-packagesjira
C:UsersmeAppDataLocalProgramsPythonPython36-32Libsite-packagesjira-1.0.15.dist-info

到:

buildexe.win32-3.6lib(通过运行 setup.py 创建的目录(覆盖任何冲突。

这为我解决了问题。如果您有任何其他问题,请告诉我。

我在PyDev 项目中导入 jira 时遇到了此异常,该项目将jiragit 克隆链接为项目参考

我的解决方法是扩展 PATH 环境以包含 git 可执行文件。

分析

pbr/packing.py - get_version()提高

例外:此项目的版本控制需要 sdist 压缩包或访问上游 git 存储库。

_get_version_from_git()返回.当pbr/git.py - _run_git_functions() - _git_is_installed()找不到 git 可执行文件。

当我尝试在 AWS lambda 函数上使用包上传我的代码时,我遇到了同样的问题。经过多次试验和错误,添加idna包以及jira包对我有用。

idna
idna-2.10.dist-info
jira
jira-2.0.0.dist-info

最新更新