我最近看到--no-cache-dir在Docker文件中使用它.我以前从未见过那面旗帜而且帮助没有解释它:
--no-cache-dir Disable the cache.
Run Code Online (Sandbox Code Playgroud)
我开始使用 bitbucket CI 制作应用程序,我正在使用以下步骤来部署应用程序,但安装 pip 的步骤失败了。
script:
- apt-get update
- apt-get install -y python-dev
- curl -O https://bootstrap.pypa.io/get-pip.py
- python get-pip.py
... and a few more steps
Run Code Online (Sandbox Code Playgroud)
不知道为什么,但python get-pip.py步骤失败并出现以下错误。
Traceback (most recent call last):
File "get-pip.py", line 24226, in <module>
main()
File "get-pip.py", line 199, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
from pip._internal.cli.main import main as pip_entry_point
File "/tmp/tmpUgc5ng/pip.zip/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
直到昨天,这一切正常。不知道为什么这现在不起作用。
我认为这可能是因为 Windows,但我检查了运行 linux 的本地机器,但这些步骤但它们工作正常。
我有兴趣知道在当前版本的centos7(7.5.1804)上安装pip3 for python3.6(截至今日,2018年5月)以及如何在CentOS 7中安装pip的接受答案?似乎已经过时了,因为:
yum search -v pip
Run Code Online (Sandbox Code Playgroud)
输出(除其他外):
python2-pip.noarch : A tool for installing and managing Python 2 packages
Repo : epel
python34-pip.noarch : A tool for installing and managing Python3 packages
Repo : epel
Run Code Online (Sandbox Code Playgroud)
并且python34-pip似乎比(如果在CentOS 7中安装pip的接受答案)更简单(更新?)?:
sudo yum安装python34-setuptools
sudo easy_install-3.4 pip
但是因为在我的机器上安装的python版本是2.7.5和3.6.3,为什么它是python34-pip而不是python36-pip?对于3.4+(直到当前的3.6.3),pip是否相同?
每当我使用 pip 时,它都会警告我我的 pip 已过期,我需要通过执行pip install --upgrade pip.
但当我这样做时,它似乎没有任何效果,只是告诉我同样的事情。是圆形的!
我怎样才能解决这个问题?见下文
$ pip install --upgrade pip
You are using pip version 6.0.8, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: pip in my-virtualenv/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
编辑:我正在运行 Red Hat Enterprise Linux(在 AWS 上)。所以我只是尝试卸载并重新安装 python-pip。当我这样做时,它告诉我它将安装 pip 6.1.1.-1.21.amzn1。我怎样才能让它安装新版本?
在我们为 python 项目构建镜像的 Dockerfile 中,我们有这样一行将 pip 升级到最新版本:
RUN pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
这已经工作了一段时间了,但最近图像构建开始失败,因为我们使用的是 python 3.6.1,最新版本的 pip (21.1) 现在需要 python >= 3.6.2,否则你会得到一个“ImportError:不能导入名称 NoReturn”,参见https://github.com/psf/black/issues/1666
除了升级我们的 Python 版本来解决这个问题之外,我想知道我们是否真的应该运行这个命令来在 Dockerfile 上下文中升级最新版本,因为这样做时我们不再获得可重现的图像,因为 pip 版本将继续移动,这违背了 Docker 可重现环境的概念。
那么,我们是否应该指定确切的 pip 版本以保持可重现的构建,即使这意味着在某些时候它会过时?或者是否有另一种选择可以确保我们的图像在新的 pip 版本发布时继续工作?