Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从tarball安装Python包将得到0.0.0版本_Python_Installation_Pip_Package - Fatal编程技术网

从tarball安装Python包将得到0.0.0版本

从tarball安装Python包将得到0.0.0版本,python,installation,pip,package,Python,Installation,Pip,Package,我正在从PyPi的tar.gz源发行版安装Python包,但有时这些包是用“0.0.0”版本安装的 有人能帮我理解为什么会这样以及如何解决这个问题吗 作为最近的一个示例,我从中获取了datacube(是的,我可以在这里使用whl文件,但通常我更喜欢tar.gz) 下载datacube-1.8.3.tar.gz 提取并cd到datacube文件夹 pip安装-v. 当使用Python3.8.6时,它似乎安装得很好,版本如预期的一样为1.8.3(“成功安装了datacube-1.8.3”) 当将

我正在从PyPi的tar.gz源发行版安装Python包,但有时这些包是用“0.0.0”版本安装的

有人能帮我理解为什么会这样以及如何解决这个问题吗

作为最近的一个示例,我从中获取了datacube(是的,我可以在这里使用whl文件,但通常我更喜欢tar.gz)

  • 下载datacube-1.8.3.tar.gz
  • 提取并cd到datacube文件夹
  • pip安装-v.
当使用Python3.8.6时,它似乎安装得很好,版本如预期的一样为1.8.3(“成功安装了datacube-1.8.3”)

当将Python 3.8.2与安装的模块集稍有不同时,生成的版本将改为0.0.0(“成功安装的datacube-0.0.0”)

在这两种情况下,我都使用virtualenv(20.0.34/20.0.18)

那么这个版本到底是从哪里来的,我如何检查和解决这个问题呢

我已经尝试了
pip安装--升级setuptools setuptools scm toml poyment
,这是负责安装软件包的软件包,但没有成功


在一次“意外”之后,我也注意到,一旦我在virtualenv之外运行pip install命令,这个问题似乎就消失了,这在我使用
virtualenv--system site packages
pip freeze
创建它时更为神秘,下载tarball并手动安装它似乎是一件奇怪的事情。为什么不干脆
pip安装datacube
?这是更大功能的一部分。在这种情况下,EasyBuild半自动安装软件和依赖项。它允许预下载和校验源,以确保再现性和集群无需互联网连接。因此,直接从PyPi安装在这里不是一个选项,即使这样,您也可以从本地回购中使用
pip
安装tarball。我看不出手动修复它有什么好处,并且假设它不是维护人员期望需要支持的东西。当没有找到匹配的whl时,pip在引擎盖下不就是这么做的吗?我的意思是使用tar.gz,解压缩并从(那个)源安装?而且它几乎适用于所有事情,我似乎“只”遇到了Python问题,我不知道如何进一步调试