9

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

pip install -e git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev

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

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')

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

4

5 回答 5

8

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

您可以更新任意数量的方式,但一种是python -m pip install --upgrade setuptools

于 2019-01-24T22:31:59.787 回答
5

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

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

/src/yourpackage/__init__.py
/setup.py
/pyproject.toml

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

(为了解决这个问题,我找到了一个工作项目,该项目的包存储在一个src文件夹下并一直删除内容,直到出现该错误。这显然是 Pip 中的一些错误。我在 Windows 10 上安装了 Python 3.7 版本 18.1 在我的机器上.)

于 2018-12-10T01:30:10.467 回答
2

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

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

srcdir = join(dirname(__file__), 'src')
setup(...,
      package_dir      = {'': srcdir})

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

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

pip install git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev

参考:

于 2012-02-29T00:16:27.727 回答
1

在我的情况下,问题出在package_dir = {'': './src'}:我指定了 dir 的路径,而不是 dir name,由于某种原因,它与setup.py bdist_wheel.

于 2019-10-26T18:19:09.523 回答
1

我的项目具有以下结构:

+-- project/
    +-- src/
    |   +-- project/
    |       +-- __init__.py
    +-- doc/
    +-- tests/
    +-- setup.py
    +-- ...

所以基本上,所有 python 代码都在/src/project. 这允许避免project直接从测试脚本或其他导入。

setup.py内容:

setuptools.setup(
    ...
    packages=setuptools.find_packages('src'),
    package_dir={'': 'src'},
    ...
)

现在我想把这一切都拉到下面一层,这样整个项目就可以有不同的组件了,如下:

+-- project/
    +-- backend/
    |   +-- src/
    |       +-- project/
    |           +-- __init__.py
    |
    +-- frontend/
    |   +-- ...
    |
    +-- doc/
    +-- tests/
    +-- setup.py
    +-- ...

pip install -e .因此,即使在尝试修复所有路径之后,我在尝试时也收到了 OP 中的错误消息。

我通过以下更新解决了它setup.py

setuptools.setup(
    ...
    packages=setuptools.find_packages('backend/src'),
    package_dir={'': 'backend/src'},
    ...
)

希望这可以帮助!

于 2020-04-24T20:22:20.550 回答