gpt4 book ai didi

python - 如何在 pip freeze 制作的需求文件中维护 pip 安装选项?

转载 作者:IT老高 更新时间:2023-10-28 20:41:24 24 4
gpt4 key购买 nike

我使用 pip requirements file维护我的项目的依赖项列表。

我现在发现自己必须使用 pip install --install-option='some-setup.py.option' but pip freeze 来安装库 不会在其输出中记录这些选项,我将其保存在项目的 requirements.txt 中。这会导致问题,因为在新机器上一个简单的 pip install -r requirements.txt 会安装所有依赖项,而没有为这个库提供所需的参数,并且我失去了简单的往返操作。

所以,我的两部分问题是:

  • 有没有办法以某种方式在 pip freeze 输出中维护 pip 安装选项?
  • 如果没有,有没有办法手动破解需求文件以添加安装选项?如果必须,我可以放弃 pip freeze 的往返性质,并切换到需求文件的手动维护。我检查了documentation但看不到任何帮助。

以下是不必要但可能有趣的细节

我要安装pymongo但是 without building the C extension所以我可以在 eventlet 中异步使用它基于应用程序。

根据需要安装并构建 requirements.txt:

(test)day@office:~/test$ pip install pymongo --install-option='--no_ext'
Downloading/unpacking pymongo
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
Successfully installed pymongo
Cleaning up...
(test)day@office:~/test$ pip freeze > requirements.txt
(test)day@office:~/test$ cat requirements.txt
bottle==0.10.7
distribute==0.6.10
eventlet==0.9.16
greenlet==0.3.3
lxml==2.3.3
pymongo==2.1.1
simplejson==2.3.2
wsgiref==0.1.2

在新的 virtualenv 中,尝试从 requirements.txt 安装相同的项目。 pip 为 pymongo 构建 C 扩展 :(

(test2)day@office:~/test2$ pip install -r requirements.txt 
...
Downloading/unpacking pymongo==2.1.1 (from -r requirements.txt (line 6))
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
building 'bson._cbson' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.6 -c bson/_cbsonmodule.c -o build/temp.linux-i686-2.6/bson/_cbsonmodule.o
...
Successfully installed pymongo
Cleaning up...

更新 Issue 271于 2011 年 4 月针对 pip 打开,要求能够在 requirements.txt 中指定每行 --install-option。如果您有同样的问题,请为该问题投票。

最佳答案

自 7.0 版(发布 2015-05-21 )以来,pip 能够从需求文件中解析 --install-option--global-option 。现在应该可以在 requirements.txt 中包含以下行:

pymongo==2.1.1 --install-option='--no_ext'

更多信息可以找到herehere .

关于python - 如何在 pip freeze 制作的需求文件中维护 pip 安装选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874638/

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