“无法从安装目录获得一致的安装脚本路径”

Fil*_*eia 9 python pip setup.py

我正在使用 pip 从 git 存储库安装包:

pip install -e git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev
Run Code Online (Sandbox Code Playgroud)

存储库被克隆没有问题,但安装失败并显示以下消息:

Running setup.py egg_info for package SpiffWorkflow
Installing collected packages: SpiffWorkflow
Running setup.py develop for SpiffWorkflow
 error: ("Can't get a consistent path to setup script from installation 
  directory", '/', '/home/fcorreia/venvs/myproj/src/spiffworkflow')
Run Code Online (Sandbox Code Playgroud)

我曾尝试查看项目的setup.py,但没有取得多大成功......知道吗?

Pau*_*l42 7

对于未来的人,如果您在 Windows 10 上使用旧版本的 setuptools 并且看起来它有一个额外的斜线,则需要更新 python 包“setuptools”以解决此Windows 10 python 错误

您可以通过多种方式更新,但其中一种是 python -m pip install --upgrade setuptools


Al *_*art 5

您的包中需要有一个pyproject.toml文件。我不知道为什么这会使错误消失,但它有效。该文件是PEP 518“为 Python 项目指定最低构建系统要求”的一部分

src如果您pyproject.toml的项目中有一个,您可以将您的包放在子文件夹中:

/src/yourpackage/__init__.py
/setup.py
/pyproject.toml
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样,但是当您pip install -e .以“可编辑”模式运行安装包时,它会使错误消息消失。该文件甚至不必包含任何内容,它可以是一个空白文件,错误就会消失。

(为了弄清楚这一点,我发现了一个工作项目,它的包存储在一个src文件夹下,并不断删除内容,直到出现该错误。这显然是 Pip 中的一些错误。我的机器上的 Windows 10 版本为 18.1,适用于 Python 3.7 .)


Hug*_*res 3

这是因为该标志-e意味着“可编辑”,并且它是相同的,它会创建一个到您的目录的python setup.py develop符号链接,而不是运行通常的安装。<PACKAGE_NAME_LOWERCASE>site-packages

看看 SpiffWorkflow 的setup.py我可以看到问题出在哪里:

srcdir = join(dirname(__file__), 'src')
setup(...,
      package_dir      = {'': srcdir})
Run Code Online (Sandbox Code Playgroud)

它表示包内容位于src, 而不是spiffworkflow(开发模式所期望的)。

你可以放下旗帜-e并感到高兴:

pip install git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev
Run Code Online (Sandbox Code Playgroud)

参考:

  • 我发现如果您在文件夹中放置一个空白的 pyproject.toml 文件,这个错误就会消失。 (3认同)