gpt4 book ai didi

python - 安装具有来自本地源代码分发的 setup_requires 的包

转载 作者:太空狗 更新时间:2023-10-30 01:07:56 26 4
gpt4 key购买 nike

采用以下包含 setup_requires 的简单包:

from setuptools import setup
setup(name='my_package', setup_requires=['cython'])

假设我已完成以下操作以将其构建为源代码分发版:

$ python setup.py sdist

并下载了 Cython 的源代码分发版

$ pip install --download ./dist/--no-use-wheel Cython

所以现在我有:

$ ls dist/
my_package-0.0.0.tar.gz
Cython-0.21.1.tar.gz

我想做的是使用 --find-links 等的某种组合将软件包安装在网络隔离的机器上。

我想我可以做类似的事情

pip install --no-index --find-links="file:///$(pwd)/dists"dist/my_package-0.0.0.tar.gz

但是我得到一个看起来像这样的错误:

找不到 cython 的本地包或下载链接(此处全文:http://paste.pound-python.org/show/IxmzEEfQ5yZRU45i2FBM/)

我失败的尝试:

设置如下

[easy_install]
allow_hosts = ''
find_links = file:///$(pwd)/emr-sdists

在:

/usr/lib/python2.6/distutils/distutils.cfg
~/.pydistutils.cfg
./setup.cfg

我目前正在使用 docker 的 --net none 设置来帮助调试它,如果它可以让您更容易地进行复制。

最佳答案

问题(除了你的 --find-links 被打错为 dists 而不是 dist )是 pip 做的第一件事安装包运行 python setup.py egg_info,无需传递任何包查找信息。 Pip 实际上并不想要 setuptools 安装任何依赖项!它希望 setuptools 以 egg_info 的形式输出依赖项,以便 pip 可以读取它们并自行获取它们。

但是setup_requires 中的依赖项总是安装在任何 setup.py 调用中。我什至会说 setup_requires 与 pip 完全不兼容。

另一种方法是...将您的构建代码放在 build 步骤中。在安装所有依赖项之前,Pip 不会尝试构建您的包。

关于python - 安装具有来自本地源代码分发的 setup_requires 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com