让我们说你是防火墙和代理的后面,没有互联网 访问。这样您就无法访问PyPi公共存储库。
添加/ etc / hosts
127.0.0.0 pypi.python.org.
在贵公司,你有一个JFrog神器,它服务于pypi包 通过缓存pypi.python.org,但您只能访问此Web服务器。
所以如果你有一个具有以下配置的项目:
tests_require = [ 'pytest', 'pytest-runner' ]
install_requires = [ 'pyyaml' ]
requirements.text
仅提及pyyaml
并且您已配置~/.pip/pip.conf
以访问此本地JFrog
神器,
因此,这个项目永远不会像requirements.text
中那样起作用
可以从本地jfrog中获取pyyaml,但是你永远不能获取pyttest
它需要访问pypi.python.org。
请记住,测试要求不应该在requirements.text中;
有人可能需要使用PEX
打包此应用程序。
为什么不使用pip
设置工具来获取依赖项?
为什么所有这些冗余和复杂性?在这种情况下,我不明白install_requires
和pip freeze
的不同角色是如何发挥作用的。
我只需要使用本地pypi索引并一次声明我的要求(测试或部署要求)。
注意: 使用pip的内部api来统一setuptools:install_requires和requirements.text不是一个真正的解决方案