Error: setup script specifies an absolute path: .gitignore

Error: setup script specifies an absolute path: .gitignore

在 Ubuntu 16.04.4 上,我怀疑某些 Python 系统包的最新更新破坏了我的 Python 2.7 配置。无论我尝试使用基本的 sudo python setup.py install 安装或重新安装任何软件包,它总是因为 gitignore:

而失败
running install
running bdist_egg
running egg_info
[...]
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py

error: Error: setup script specifies an absolute path:

    /home/me/some_repo/.gitignore

setup() arguments must *always* be /-separated paths relative to the
setup.py directory, *never* absolute paths.

最近我找到了一个临时解决方法,即在安装 some_package 之前手动清理 /usr/local/lib/python2.7/dist-packages/some_package 目录。但是今晚我在另一个存储库上遇到了同样的问题,无论我清理什么,它都会失败。我还尝试清理所有已编译的文件夹 .egg-info/ build/ dist/ 但没有成功。

注意:安装脚本实际上并未指定 git忽略的绝对路径。一个失败的 repo 的例子是 https://github.com/philchristensen/python-artnet/blob/master/setup.py 这个 repo 有一个 setuptools_git 条目可能会导致线索,但是没有这个 git 入口点的其他包也会因为 git 而失败忽略几个月前我从未遇到过相同回购协议的此类问题。删除 gitignore 会导致安装失败,因为另一个非 py 本地文件。

有线索吗?

看来我之前安装的其他一些软件包损坏了我的 system-wide Python。

以下是我为安装软件包 xyz 所做的修复:

  • 浏览 /usr/local/lib/python2.7/dist-packages 以搜索 "gitignore"
  • 已删除所有匹配事件的文件夹(包括匹配 "gitignore" 的 setuptools_git 本身)
  • pip install setuptools_git
  • 在包 xyz 中,rm -rf dist/ build/ *.egg-info/
  • 重新安装软件包 xyz,现在安装成功
  • 使用虚拟环境作为一课