当前位置: 首页 > 知识库问答 >
问题:

我可以告诉pip忽略通过“安装程序”安装的要求吗。py开发`?

萧英光
2023-03-14

我正在开发一个Python库,我已经将它安装在本地virtualenv中进行测试。我在pip中安装了几个依赖项。当我这样做的时候

$ pip freeze > requirements.txt

它添加了我当前的项目,如下所示:

-e git+git@github.com:path/to/my/project@somehash#egg=lib-master

我必须手动删除它-我的项目实际上并不依赖于它本身。是否可以向pip传递一个参数,该参数表示“嘿,忽略这些类型的包?”

共有2个答案

葛和志
2023-03-14

这是个错误的问题。您不应该试图根据当前安装的内容来建立需求。您的项目应该指定它的需求,并根据这些信息(以及需求的需求)计算最终的需求集。请注意,开发需求应该这样指定,这样它们就可以根据需要单独安装——请参阅设置工具“开发”需求和如何为多个环境定制requirements.txt?。
不幸的是,pip还不能计算这一点。您可以使用pip-ols计算,将结果写入requirements.txt文件。有关如何使用pip工具的完整示例,请参阅我的答案。

张亦
2023-03-14

最简单的解决方案是使用-v(反向匹配)将pip冻结的结果输送到grep

pip freeze | grep -v 'project_name' > requirements.txt

演示:

$ mkvirtualenv test
New python executable in test/bin/python
Installing Setuptools...done.
Installing Pip...done.
(test)$ pip freeze
wsgiref==0.1.2
(test)$ pip install requests
Downloading/unpacking requests
  Downloading requests-2.2.1.tar.gz (421kB): 421kB downloaded
  Running setup.py egg_info for package requests

Installing collected packages: requests
  Running setup.py install for requests

Successfully installed requests
Cleaning up...
(test)$ pip freeze
requests==2.2.1
wsgiref==0.1.2
(test)$ pip freeze | grep -v 'requests'
wsgiref==0.1.2
(test)$ pip freeze | grep -v 'requests' > requirements.txt
(test)$ cat requirements.txt 
wsgiref==0.1.2

另请参见:使用grep的负匹配(不包含foo的匹配行)。

希望这有所帮助。

 类似资料:
  • 编辑以获得更多澄清:查询字符串是从另一个(get)请求中遗留下来的。因此,如果我可以清除查询字符串,这也将工作。此外,我不希望编辑表单输入的,因为我希望此postendpoint可以用于其他服务,而不必更改它们。

  • 问题内容: 我正在将Ubuntu 14.04(Trusty Tahr)与Python 2.7.6版一起使用。今天,当我创建一个新尝试并尝试做时,出现了错误。 我通过 使用Requests包时 遵循 _SSLInsecurePlatform错误中的说明解决了此问题。 但是我想了解这两个命令和之间的实际区别是什么 。 为什么前者要另外安装三个软件包? 将代码推送到生产环境时,我需要注意什么事情? 他们

  • 如何让install4j安装程序始终建议默认安装,而不尝试使用以前的安装目录。 我将我的目录添加到媒体中,并在安装位置屏幕上选中建议应用程序目录,但我仍然得到不希望的行为。 null null 谢谢你的帮助 彼得

  • 问题内容: 以下是我运行时遇到的错误: 问题答案: 在没有空格的路径中创建您的virtualenv环境。这就是为什么它发生的原因: 创建环境时,它会建立一个目录。在该目录中是与环境有关的所有可执行文件。有些是脚本。如您所知,hashbang用来告诉系统使用什么解释程序来运行脚本。您可能经常在脚本顶部看到此信息: 如果脚本位于,则告诉系统运行以下命令来执行脚本: 就您而言,virtualenv正在创

  • 问题内容: 有什么方法可以强制安装pip python软件包,而忽略所有无法满足的依赖关系吗? (我不在乎这样做有多“错”,我只需要这样做,除了逻辑和推理之外……) 问题答案: 点有一个开关。您应该使用它。 有关更多信息,请运行,在这里您将看到以下行:

  • 我正在使用管理版本,ala PEP 440。 我已将几个版本上载到私有存储库: 我的问题是现在当我使用 我得到的版本是当我期望得到。 有没有办法让pip忽略“本地版本”,只安装准确的版本,而不必上传到不同的索引(即staging和stable)? 编辑: 我已尝试使用和标志,但问题仍然存在;皮普更喜欢0.0。2版本到0.0版本。2版本。 附加编辑: 我使用的是和python2.7