我正在使用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,但是没有太大的成功......有什么想法吗?
6条答案
按热度按时间3bygqnnd1#
对于未来的人们来说,如果你在windows10上使用的是一个旧版本的setuptools,并且它看起来有一个额外的斜线,你需要更新python包“setuptools”来绕过这个windows 10 python bug
您可以通过多种方式进行更新,但
python -m pip install --upgrade setuptools
是其中之一pieyvz9o2#
你需要在你的软件包里有一个
pyproject.toml
文件。我不知道为什么这个错误会消失,但是它起作用了。这个文件是PEP 518 "Specifying Minimum Build System Requirements for Python Projects"的一部分。如果项目中有
pyproject.toml
,则可以将包放在src
子文件夹中:我不知道为什么这样做,但是当你在“editable”模式下运行
pip install -e .
来安装这个包时,这个错误信息就消失了。这个文件甚至不需要有任何东西,它可以是一个空文件错误就消失了。(To我发现一个正在工作的项目,它的包存储在
src
文件夹下,并且一直在删除一些东西,直到我收到那个错误。这显然是Pip中的一些bug。我的机器上有Windows 10 for Python 3.7的18.1版本。)a9wyjsp73#
这是因为标记
-e
意味着“可编辑”,并且它与python setup.py develop
相同,这会创建一个从<PACKAGE_NAME_LOWERCASE>
到site-packages
目录的符号链接,而不运行常规安装。查看SpiffWorkflow的
setup.py
,我可以看到问题所在:它指出包内容位于
src
,而不是spiffworkflow
(开发模式所期望的)。您可以丢弃
-e
标志并高兴地执行以下操作:参考文献:
gajydyqb4#
在我的例子中,问题是与
package_dir = {'': './src'}
:我指定了dir的 path,而不是dir name,出于某种原因,这在setup.py bdist_wheel
中运行良好。qjp7pelc5#
我的项目结构如下:
所以基本上,所有的python代码都是
/src/project
的,这样可以避免直接从测试脚本或其他地方导入project
。setup.py
含量:现在我想把所有这些都拉到下面一层,这样整个项目就可以有不同的组件,如下所示:
所以当我尝试
pip install -e .
时,即使在尝试修复所有路径后,我也会收到OP中的错误消息。我通过以下
setup.py
中的更新解决了这个问题:希望这有帮助!
biswetbf6#
在我的例子https://github.com/pypa/setuptools/discussions/3755中,我从包目录配置的开头删除了./ chars,并且成功地安装了它。